Pytanie : Pomagać SQL W oświadczenie jako "I"

I mieć uczucie tam  być żadny sposób uczucie, ale I pytać jakkolwiek.  I przechodzić set etykietka mój sproc (SQL Serwer) w CSV format.  To lubić to:

sp_articlesByTag 'książka, cars'< br/>
The parametr przechodzić mój (uproszczony) SQL kod -

SELECT * od artykuł DOKĄD etykietka W (@tagparam)

Unfortunately ono wracać rezultat książka LUB samochód.  I chcieć ono książka i samochód.  I właśnie patrzeć dla być trochę elegancki elegancki the CSV i DOKĄD oświadczenie w the sproc.

Thanks w postęp dla jakaś help.

PS - Właśnie w ten sposób I dawać zupełny obrazek, mój kod być klasyk ASP i I używać brogować Querystring the etykietka.  (ie:  search.asp? tag=books&tag=cars che powrót książka, samochód)

Odpowiedź : Pomagać SQL W oświadczenie jako "I"

JEŻELI wszystkie the kolumna w the WYBIÓRKA być od "view_publicstories", ono jak below musieć ono.

Jeśli nie, ty móc musieć re-join tbl_taglink.

Lub sposób, ono musieć ty dobry pomysł musieć ty potrzebować.

Btw, gdy rozdawać z wieloskładnikowy stół w zapytanie, twój kod być łatwy i jeżeli ty podążać tam  wytyczna:

1) ZAWSZE pseudonim wszystkie stół
2) Jeżeli tam  być więcej niż jeden stół w zapytanie, używać the stołowy pseudonim na KAŻDY kolumna w the WYBIÓRKA.  Stół robić ono łatwy jaki kolumna przychodzić od jaki stół.
(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:
ustawiać ANSI_NULLS DALEJ
ustawiać QUOTED_IDENTIFIER DALEJ
IŚĆ
ZMIENIAĆ PROCEDURA [dbo]. [sp_getStoriesByTag]
	@tagname varchar (2000),
	@sort int

ZACZYNAĆ
	USTAWIAĆ NOCOUNT DALEJ;
	OZNAJMIAĆ @sql varchar (2000)
    OZNAJMIAĆ @tagcount jako int
    USTALONY @TAGCOUNT = LEN (@TAGNAME) - LEN (ZAMIENIAĆ (@TAGNAME, ",", '')) + (1)

    USTALONY @sql = 'WYBIÓRKA ODRĘBNY recid, autor, view_publicstories.recdate, tytuł, storycodes, ocena, ranking, widok, strona
			OD view_publicstories WEWNĘTRZNY ŁĄCZYĆ (
                WYBIERAĆ storyid
                OD tbl_taglink
                DOKĄD tagid WEWNĄTRZ (
                    WYBRANY tagid
                    OD tbl_tags
                    DOKĄD (tagname wewnątrz (" + @tagname + ")))
                GRUPA Storyid
                MIEĆ OBLICZENIE (*) = "+ CISKAĆ (@tagcount Varchar (10)) + ") JAKO dopasowanie
            NA (view_publicstories.recid = matches.storyid) 
				ROZKAZ '+ SKRZYNKA @SORT 
                    GDY (1) WTEDY "view_publicstories.ranking"
                    GDY 2 WTEDY "view_publicstories.rating"
                    GDY 3 WTEDY "view_publicstories.title"
                    INNY "(0)"
                    KOŃCÓWKA
        EXEC (@sql)
Inne rozwiązania  
 
programming4us programming4us