Pergunta : Ajudar a usar o SQL na indicação como “E”

Eu não tenho um sentimento lá sou nenhuma maneira de fazer isto, mas figurado eu pediria de qualquer maneira.  Eu estou passando um jogo dos Tag a meu sproc (usuário do SQL) no formato de CSV.  Qualquer outra coisa semelhante:

sp_articlesByTag ', parâmetro do Br/>
The do cars'< são passados a meu código (simplificado) do SQL -

SELECT * dos artigos ONDE os Tag no

Unfortunately (do @tagparam) ele retornam os resultados que contêm livros OU carros.  Eu quero-o retornar livros e carros.  Eu apenas estou procurando algo um pouco mais elegante do que analisando gramaticalmente o CSV e a construção ONDE indicação no sproc.

Thanks adiantado para algum help.

PS - apenas assim eu dou um retrato completo, meu código de chamada é ASP clássico e eu estou usando um Querystring empilhado para começ os Tag.  (IE:  search.asp? tag=books&tag=cars que retorna “livros, carros” a mim)
class= do

Resposta : Ajudar a usar o SQL na indicação como “E”

SE todas as colunas no SELETO são dos “view_publicstories”, algo como below deve fazê-lo.

Se não, você pode tem que re-join ao tbl_taglink.

Uma ou outra maneira, deve dar-lhe uma boa idéia do que você precisa de fazer.

BTW, ao tratar as tabelas múltiplas em uma pergunta, seu código será muito mais fácil de escrever e seguir se você segue lá diretrizes:

1) SEMPRE aliás todas as tabelas
2) Se há mais de uma tabela em uma pergunta, usar a tabela aliás em CADA coluna no SELETO.  Isto faz fácil dizer que coluna vem de que tabela.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
ajustar ANSI_NULLS SOBRE
ajustar QUOTED_IDENTIFIER SOBRE
IR
ALTERAR O PROCEDIMENTO [dbo]. [sp_getStoriesByTag]
	@tagname varchar (2000),
	@sort int
COMO
COMEÇAR
	AJUSTAR NOCOUNT SOBRE;
	DECLARAR o @sql como varchar (2000)
    DECLARAR o @tagcount como o int
    AJUSTAR O @TAGCOUNT = O LEN (@TAGNAME) - LEN (SUBSTITUIR (O @TAGNAME, “,”, '')) + 1

    AJUSTAR o @sql = 'SELECIONAM o recid DISTINTO, autor, view_publicstories.recdate, título, storycodes, avaliação, classificação, vistas, páginas
			Dos view_publicstories INTERNOS JUNTAR-SE (
                SELECIONAR o storyid
                Do tbl_taglink
                ONDE tagid DENTRO (
                    SELECIONAR o tagid
                    Dos tbl_tags
                    ONDE (tagname dentro (“+ @tagname + ")))
                GRUPO pelo storyid
                TER A CONTAGEM (*) = “+ MOLDOU (@tagcount COMO varchar (10)) + ") COMO fósforos
            EM (view_publicstories.recid = matches.storyid) 
				ORDEM POR '+ @SORT DO CASO 
                    QUANDO 1 ENTÃO “view_publicstories.ranking”
                    QUANDO 2 ENTÃO “view_publicstories.rating”
                    QUANDO 3 ENTÃO “view_publicstories.title”
                    MAIS “0”
                    EXTREMIDADE
        EXEC (@sql)
Outras soluções  
 
programming4us programming4us