我有这张桌子:
ID TXT VL
----------
1 A 1
2 B 0
4 C 0
6 D 0
10 D 0
13 E 0
14 C 0
15 E 0
我不知道如何才能选择TXT
这样的第一个外观:
ID TXT VL
----------
1 A 1
2 B 0
4 C 0
6 D 0
13 E 0
答案 0 :(得分:2)
您可以执行以下操作:
select t1.*
from tbl t1
join (select min(id) as id from tbl group by txt) t2 on t1.id = t2.id
在临时表中,您可以找到每个uniq txt
的所有第一次出现,然后将其与原始表连接。
答案 1 :(得分:1)
您可以使用ROW_NUMBER() OVER
执行此操作,如下所示:
WITH CTE AS (
SELECT *
, ROW_NUMBER() OVER (PARTITION BY TXT ORDER BY ID) AS RowN
FROM table
)
SELECT ID, TXT, VL
FROM CTE
WHERE RowN = 1
希望有所帮助:)
更多阅读: https://msdn.microsoft.com/en-us/library/ms189461.aspx 并https://msdn.microsoft.com/en-us/library/ms186734.aspx