webForumDet fria alternativet

en krångligare sql-sats

ASP

8 svar · 201 visningar · startad av eriks

Medlem sedan apr. 20011 418 inlägg
Frågan#1

Hej! Kan man på något sätt kolla i SQL om det finns någon (några/) post som uppfyller ens krav. Om man har en tabell med värdena : 1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,4,4,4,4,4,4,4,4,4,6,6 , så vill jag bara få ut 1,2,3,4,6. Dvs jag behöver inte alla värdena (hur många av varje sort det finns är ointressant) utan bara vilka värden som finns. Går detta?

Tack! /Erik

Medlem sedan mars 20002 836 inlägg
#2

Jo,

du kan använda dig av:

strSQL = "SELECT DISTINCT FLD_FIELD FROM TBL_TABLE"

cya,
PatrikB

------------------
*Det tar sig sa han som hade eld i håret*

Medlem sedan apr. 20011 418 inlägg
#3

okey, tack... vad betyder det då

Medlem sedan dec. 200012 464 inlägg
#4

Det innebär att man bara får en förekomst av varje post i resultatet.

Om tabellen ogrish innehåller följande rader

C1!C2
-----
11!22
11!21
12!22

så innebär select distinct c1 from ogrish att man får tillbaka två rader med värdet 11 och 12. Däremot om skriver

select distinct c1,c2 from ogrish

så får man tre rader då distinct aplliceras på alla kolumner i resultatet.

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 20011 418 inlägg
#5

nå förstår jag... tack så mycket!

Medlem sedan apr. 20011 418 inlägg
#6

Jag testade lite, men det gick inte så bra. Jag skriver:

SQLStmt3 = "SELECT DISTINCT UserID FROM Users"
Set RS3 = Connection.Execute(SQLStmt3)

Response.Write RS3("UserID")

(Detta är bara test, annars är det ju självklart att det inte finns två likadan UserID). När jag skriver så får jag bara fram den första posten. Jag vill få fram alla poster. Vad är fel?

Medlem sedan maj 20015 inlägg
#7

SQLStmt3 = "SELECT DISTINCT UserID FROM Users"
Set RS3 = Connection.Execute(SQLStmt3)

Do While Not RS3.EOF
Response.Write RS3("UserID") & "<br>"
RS3.MoveNext
Loop

Medlem sedan dec. 200012 464 inlägg
#8

SQLStmt3 = "SELECT DISTINCT UserID FROM Users"
Set RS3 = Connection.Execute(SQLStmt3)

while not rs3.eof
Response.Write RS3("UserID") & "<br>"
rs3.movenext
wend

ungefär så kan man skriva för att få fram alla poster.

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 20011 418 inlägg
#9

tack... om jag vidareutvecklare det lite mer. Det jag har tänkt göra är att kolla om ett speciellt värde finns i tabellen. Jag ska göra det på flera ställen på sidan. Jag kan ju använda en loop, så som ni visade, men borde det inte finnas lättare sätt att göra detta. Jag menar typ genom att hämta alla värden från tabellen en gång (så med SELECT DISTINCT) och ha dem i en kommabaserad lista, och sedan bara kolla vid varje ställe man ska använda sig av det behöver man bara kolla om talet man är ute efter ligger i listan. Går detta och borde det inte vara bättre än att ha en massa loopar?

Tack! /Erik

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)