webForumDet fria alternativet

Kombinera TOP 10 med distinct

8 svar · 269 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#1

Varför är jag tvungen att välja mellan top eller distinct?

SELECT TOP 10 DISTINCT(id),....

Incorrect syntax...
Skall man använda rowcount?
DBMS = MS Sql

LarsGMedlem sedan dec. 200012 464 inlägg
#2

distinct kvalificerar alla kolumner.

Vilket vill du ha applicerat först, top eller distinct?

Jesper TMedlem sedan nov. 20017 144 inlägg
#3

...eee vad är skillnaden? :r
Detta vill jag göra: Hämta tio poster utan dubletter.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Dubletter med avseende på vad?

Alla kolumner:

select top 10 *
from (select distinct * from t) dt
Jesper TMedlem sedan nov. 20017 144 inlägg
#5

OK, här är hela frågan:

SELECT DISTINCT(s.id), s.pname, s.city, s.province, CASE WHEN sp.shid IS NULL THEN 0 ELSE 1 END, updateddate
	FROM search1 AS s 
	LEFT JOIN search_pics AS sp 
	ON s.id=sp.shid
	ORDER BY updateddate DESC
LarsGMedlem sedan dec. 200012 464 inlägg
#6

Jaha

select top 10 * from (
SELECT DISTINCT s.id, s.pname, s.city, s.province, CASE WHEN sp.shid IS NULL THEN 0 ELSE 1 END, updateddate
	FROM search1 AS s 
	LEFT JOIN search_pics AS sp 
	ON s.id=sp.shid ) dt
ORDER BY updateddate DESC
Jesper TMedlem sedan nov. 20017 144 inlägg
#7

Jag testade det men får : No column was specified for column 5 of 'dt'.

LarsGMedlem sedan dec. 200012 464 inlägg
#8
select top 10 * from (
SELECT DISTINCT s.id, s.pname, s.city, s.province, CASE WHEN sp.shid IS NULL THEN 0 ELSE 1 END as NoColumn, updateddate
	FROM search1 AS s 
	LEFT JOIN search_pics AS sp 
	ON s.id=sp.shid ) dt
ORDER BY updateddate DESC
Jesper TMedlem sedan nov. 20017 144 inlägg
#9

Ja, det framgick ju nästan av felmeddelandet ... :)

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