Vraag : Hulp die SQL IN verklaring gebruiken als „EN“

Ik heb een gevoel daar ben geen manier om dit te doen, maar voorgekomen zou ik hoe dan ook vragen.  Ik ga een reeks markeringen tot mijn sproc (SQL Server) in formaat CSV over.  Iets in die aard: de 'boeken/>
sp_articlesByTag, wordt cars'< br/>
The overgegaan tot mijn (vereenvoudigde) SQL code -

SELECT * van artikelen WAAR markeringen IN (@tagparam)

Unfortunately het resultaten terugkeert die boeken OF auto's bevatten.  Ik wil het boeken en auto's terugkeren.  Ik zoek enkel iets een beetje eleganter dan ontledend CSV en de bouw WAAR verklaring in sproc.

Thanks vooraf voor om het even welke help.

PS - geef ik enkel zo een volledig beeld, is mijn roepende code klassiek ASPIS en ik gebruik een gestapelde Querystring om de markeringen te krijgen.  (d.w.z.:  search.asp? tag=books&tag=cars die „boeken, auto's“ aan me)
teruggeeft

Antwoord : Hulp die SQL IN verklaring gebruiken als „EN“

ALS alle kolommen in UITGEZOCHT van „view_publicstories“ zijn, zou iets als hieronder het moeten doen.

Als niet, kunt u aan tbl_taglink moeten weer verenigen.

Één van beide manier, zou het u een goed idee moeten geven van wat u moet doen.

Btw, wanneer het behandelen van veelvoudige lijsten in een vraag, zal uw code veel gemakkelijker zijn te schrijven en te volgen als u daar richtlijnen volgt:

1) ALTIJD alias alle lijsten
2) Als er meer dan één lijst in een vraag is, gebruik de lijst alias aangaande ELKE kolom in UITGEZOCHT.  Dit maakt het gemakkelijk om te vertellen welke kolom komt uit welke lijst.
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:
vastgestelde ANSI_NULLS 
vastgestelde QUOTED_IDENTIFIER 
GA
VERANDER PROCEDURE [dbo]. [sp_getStoriesByTag]
	@tagname varchar (2000),
	@sort int.
ZOALS
BEGIN
	PLAATS NOCOUNT;
	VERKLAAR @sql varchar (2000)
    VERKLAAR @tagcount als int.
    PLAATS @TAGCOUNT = LEN (@TAGNAME) - LEN (VERVANG (@TAGNAME, „,“, '')) + 1

    VASTGESTELD @sql = 'SELECTEER VERSCHILLENDE recid, auteur, view_publicstories.recdate, titel, storycodes, het schatten, het rangschikken, meningen, pagina's
			VAN VIEW_PUBLICSTORIES BINNEN TREED TOE (
                SELECTEER storyid
                VAN tbl_taglink
                WAAR tagid BINNEN (
                    SELECTEER tagid
                    VAN tbl_tags
                    WAAR (tagname binnen („+ @tagname +“)))
                GROEP DOOR storyid
                HEBBEND TELLING (*) = „+ GEGOTEN (@TAGCOUNT ZOALS VARCHAR (10)) +“) ZOALS gelijken
            OP (view_publicstories.recid = matches.storyid) 
				ORDE DOOR '+ COMPUTER-AIDED SOFTWARE ENGINEERING @SORT 
                    WANNEER 1 TOEN „view_publicstories.ranking“
                    WANNEER 2 TOEN „view_publicstories.rating“
                    WANNEER 3 TOEN „view_publicstories.title“
                    ANDERS „0“
                    EIND
        EXEC (@sql)
Andere oplossingen  
 
programming4us programming4us