webForumDet fria alternativet

Select distinct newid()

9 svar · 351 visningar · startad av Glitter

GlitterMedlem sedan juli 2003465 inlägg
#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

@ndersMedlem sedan juni 200032 969 inlägg
#2

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.

GlitterMedlem sedan juli 2003465 inlägg
#3

Kom på att det blir la aldrig samma post 2 ggr?

@ndersMedlem sedan juni 200032 969 inlägg
#4

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?

GlitterMedlem sedan juli 2003465 inlägg
#5

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 ?

LarsGMedlem sedan dec. 200012 464 inlägg
#6
select top 5 id 
from (select distinct id from tabell) 
order by newid()
GlitterMedlem sedan juli 2003465 inlägg
#7

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.

LarsGMedlem sedan dec. 200012 464 inlägg
#8

I ditt fall kan du få färre än 5 poster.

GlitterMedlem sedan juli 2003465 inlägg
#9

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

LarsGMedlem sedan dec. 200012 464 inlägg
#10

Det kan inte bli dubletter med den kod jag skrev.

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)