webForumDet fria alternativet
Logga in / Bli medlem

Kombinera TOP 10 med distinct

Databaser & SQL

8 svar · 269 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Trådstart#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

Medlem sedan dec. 200012 464 inlägg
#2

distinct kvalificerar alla kolumner.

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

Medlem sedan nov. 20017 144 inlägg
#3

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

Medlem sedan dec. 200012 464 inlägg
#4

Dubletter med avseende på vad?

Alla kolumner:

select top 10 *
from (select distinct * from t) dt
Medlem 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
Medlem 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
Medlem sedan nov. 20017 144 inlägg
#7

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

Medlem 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
Medlem sedan nov. 20017 144 inlägg
#9

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

265 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)