Fråga : Hjälp att använda SQL I meddelande som ”OCH”,

Jag har en känsla där är ingen långt att göra detta, men figurerat jag skulle frågar på något sätt.  Förmiddag som I passerar en uppsättning av, märker till min sproc (SQL-server) i CSV formaterar.  Något gillar detta:

sp_articlesByTag 'bokar, parametern för cars'

The passeras till min (förenklade) SQL kodifierar -

SELECT * från artiklar VAR märker I

Unfortunately (för @tagparam) som, den går resultat tillbaka, att innehålla bokar ELLER bilar.  Jag önskar att den ska gå tillbaka bokar och bilar.  Förmiddag som I söker efter precis något a, bet mer elegant, än satslösningen den CSVEN och byggandet VAR meddelandet i sproc.
Thanks i förskott för någon help.

PS - precis så jag ger ett färdigt föreställer, mitt kalla kodifierar är klassikern ASP, och I-förmiddagen using en staplade Querystring som ska fås, märker.  (ie:  search.asp? tag=books&tag=cars, som retur ”bokar, bilar” till mig)
" klar "

Svar : Hjälp att använda SQL I meddelande som ”OCH”,

OM alla kolonner i det VALT är från ”view_publicstories”, något den nedanföra något liknande bör göra den.

Om inte, du kan måste ren-join till tbl_taglink.

Endera långt, den bör ge dig en bra idé av vad du behöver att göra.

Btw när handla med multipel bordlägger i en query som är din kodifierar ska är mycket lättare att skriva och att följa, om du följer där anvisningar:

1) ALLTID all pseudonymen bordlägger
2) Om det finns mer, än man bordlägger i en query, använd bordläggapseudonymen på VARJE kolonn i det VALT.  Detta gör det lätt att berätta vilken kolonn kommer från vad bordlägga.
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:
uppsättning ANSI_NULLS PÅ
uppsättning QUOTED_IDENTIFIER PÅ
GÅ
FÖRÄNDRA TILLVÄGAGÅNGSSÄTTET [dbo]. [sp_getStoriesByTag]
	varchar @tagname (2000),
	@sort int
SOM
BÖRJA
	UPPSÄTTNING NOCOUNT PÅ;
	FÖRKLARA @sql som varchar (2000)
    FÖRKLARA @tagcount som int
    FASTSTÄLLD @TAGCOUNT = LEN (@TAGNAME) - LEN (BYT UT (@TAGNAME, ”,”, '')) + 1

    FASTSTÄLLD @sql = 'VALD DISTINKT recid, författare, view_publicstories.recdate, titeln, storycodes, att klassa som rangordnar, beskådar, sidor
			FRÅN INRE view_publicstories SAMMANFOGA (
                VÄLJ storyid
                FRÅN tbl_taglink
                VAR tagid IN (
                    VÄLJ tagid
                    FRÅN tbl_tags
                    VAR (tagname in (”+ @tagname +”)))
                GRUPP VID storyid
                ATT HA RÄKNING (*) = ”+ CAST (@tagcount SOM varchar (10)) +”) SOM matcher
            PÅ (view_publicstories.recid = matches.storyid) 
				BESTÄLLA VID '+ FALL@SORT 
                    NÄR 1 DÄREFTER ”view_publicstories.ranking”,
                    NÄR 2 DÄREFTER ”view_publicstories.rating”,
                    NÄR 3 DÄREFTER ”view_publicstories.title”,
                    ANNARS ”0”,
                    AVSLUTA
        EXEC (@sql)
Andra lösningar  
 
programming4us programming4us