在一列中选择唯一值并与另一列中的条件匹配

时间:2014-04-06 03:25:18

标签: sql sql-server-2008-r2

需要将下表(1)中的表格分组到输出表(2)这些是样本值,实际上它们是相应的数字和代码。 id应该是唯一的,代码应该符合条件(如果只有xz存在则xz;如果存在xz和xy,则只选择xy,依此类推)尝试'如果存在'和......当'但到目前为止运气不好,因为两个专栏都有PK。我使用SQL Server 2008,谢谢

 id   code
101   xz
102   xz
102   xy
103   xz
103   xa

output
101  xz
102  xy
103  xa

1 个答案:

答案 0 :(得分:0)

研究Ranking functions,它们对分组查询有很大帮助。

WITH cte AS
(

SELECT id,code,
       ROW_NUMBER() OVER(PARTITION BY id ORDER BY code) as row
FROM tableName
)

SELECT id,code
FROM cte
WHERE row=1