G Glitter Medlem sedan juli 2003 465 inlägg Frågan 25 nov. 2004 13:39 #1 Hej
Försöker slumpa ut poster med förljande
SELECT top 5 * FROM tabell ORDER BY NEWID()
men då kan jag få ut 2 lika poster vilket jag inte vill...
testade med
SELECT DISTINCT id FROM tabell ORDER BY NEWID()
men får felmedelandet:
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
hur gör jag då ?
kan man kombinera top och DISTINCT ?
hur isåfall ?
Jag kör SQL Server 2000
@nders Medlem sedan juni 2000 32 967 inlägg Ja, det är klart du kan kombinera TOP och DISTINCT. Däremot är det som det står i felmeddelandet; om du använder DISTINCT måste du även ha med alla fält i ORDER BY i din SELECT.
G Glitter Medlem sedan juli 2003 465 inlägg Kom på att det blir la aldrig samma post 2 ggr?
@nders Medlem sedan juni 2000 32 967 inlägg Nej, det borde det ju inte bli (om du inte har väldigt få poster förstås). Blir det det?
Om inte; vad är problemet?
G Glitter Medlem sedan juli 2003 465 inlägg Om den inte blir 2 av samma så är det inga problem...
men jag tänkte för att förebygga så skulle man kuna köra med distinct men det går ju inte eftersom man kan ju inte ange newid i selecten eller ?
L LarsG Medlem sedan dec. 2000 12 464 inlägg select top 5 id
from (select distinct id from tabell)
order by newid()
G Glitter Medlem sedan juli 2003 465 inlägg Okey tackar
kul att lära sig något nytt :)
föresten blir det inte tvärt om
select distinct id
from (select top 5 id from tabell order by newid())
för då hämtar den ut 5 slumpade och sedan kollar den så det inte är flera av samma ?
id är unikt.
L LarsG Medlem sedan dec. 2000 12 464 inlägg I ditt fall kan du få färre än 5 poster.
G Glitter Medlem sedan juli 2003 465 inlägg Jo jag vet men annars så blir det ju inte rätt för då kan det ändå bli dubletter...
ja ja det fixar sig nog.
tack för hjälpen
L LarsG Medlem sedan dec. 2000 12 464 inlägg Det kan inte bli dubletter med den kod jag skrev.