Cuestión : Ayudar a usar el SQL EN la declaración como “Y”

Tengo una sensación allí no soy ninguna manera de hacer esto, pero calculado pediría de todos modos.  Estoy pasando un sistema de etiquetas a mi sproc (servidor del SQL) en formato de CSV.  Algo similar:

sp_articlesByTag los ', parámetro del Br/>
The del cars'< se pasan a mi código (simplificado) del SQL -

SELECT * de los artículos DONDE las etiquetas EN el

Unfortunately (del @tagparam) él vuelven los resultados que contienen los libros O los coches.  Quisiera que volviera los libros y los coches.  Apenas estoy buscando algo un poco más elegante que analizando el CSV y la construcción DONDE declaración en el sproc.

Thanks por adelantado para cualquie help.

PS - apenas doy tan un cuadro completo, mi código de llamada es ASP clásico y estoy utilizando un Querystring apilado para conseguir las etiquetas.  (IE:  ¿search.asp? tag=books&tag=cars que vuelve los “libros, coches” a mí)
class= del

Respuesta : Ayudar a usar el SQL EN la declaración como “Y”

SI todas las columnas en el SELECTO son de “view_publicstories”, algo como below debe hacerlo.

Si no, usted puede tuvo que re-join al tbl_taglink.

Cualquier manera, debe darle una buena idea de lo que usted necesita hacer.

BTW, al tratar de las tablas múltiples en una pregunta, su código será mucho más fácil de escribir y de seguir si usted sigue allí pautas:

1) SIEMPRE alias todas las tablas
2) Si hay más de una tabla en una pregunta, utilizar la tabla alias en CADA columna en el SELECTO.  Esto hace fácil decir qué columna viene de qué tabla.
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:
fijar ANSI_NULLS ENCENDIDO
fijar QUOTED_IDENTIFIER ENCENDIDO
IR
ALTERAR EL PROCEDIMIENTO [dbo]. [sp_getStoriesByTag]
	@tagname varchar (2000),
	@sort internacional
COMO
COMENZAR
	FIJAR NOCOUNT ENCENDIDO;
	DECLARAR el @sql como varchar (2000)
    DECLARAR el @tagcount como internacional
    FIJAR EL @TAGCOUNT = LEN (@TAGNAME) - LEN (SUBSTITUIR (EL @TAGNAME, “,”, '')) + 1

    FIJAR el @sql = 'SELECCIONAN el recid DISTINTO, autor, view_publicstories.recdate, título, storycodes, grado, graduación, opiniónes, páginas
			De los view_publicstories INTERNOS ENSAMBLAR (
                SELECCIONAR el storyid
                De tbl_taglink
                DONDE tagid ADENTRO (
                    SELECCIONAR el tagid
                    De tbl_tags
                    DONDE (tagname adentro (“+ @tagname + ")))
                GRUPO POR el storyid
                TENIENDO CUENTA (*) = “+ ECHADO (@tagcount COMO varchar (10)) + ") COMO fósforos
            EN (view_publicstories.recid = matches.storyid) 
				ORDEN POR '+ @SORT DEL CASO 
                    CUANDO 1 ENTONCES “view_publicstories.ranking”
                    CUANDO 2 ENTONCES “view_publicstories.rating”
                    CUANDO 3 ENTONCES “view_publicstories.title”
                    “0”
                    EXTREMO
        EXEC (@sql)
Otras soluciones  
 
programming4us programming4us