Sql 在一列中选择唯一值,并与另一列中的条件匹配
需要将下表(1)分组到输出表(2)中。这些是样本值,它们是对应的数字和代码。id应该是唯一的,代码应该与条件匹配(如果只有xz存在,则xz;如果xz和xy存在,则仅选择xy,依此类推)尝试了“if exists”和“case when..then”,但到目前为止还没有成功,因为这两列都有PK。我使用SQL Server 2008,谢谢Sql 在一列中选择唯一值,并与另一列中的条件匹配,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,需要将下表(1)分组到输出表(2)中。这些是样本值,它们是对应的数字和代码。id应该是唯一的,代码应该与条件匹配(如果只有xz存在,则xz;如果xz和xy存在,则仅选择xy,依此类推)尝试了“if exists”和“case when..then”,但到目前为止还没有成功,因为这两列都有PK。我使用SQL Server 2008,谢谢 id code 101 xz 102 xz 102 xy 103 xz 103 xa output 101 xz 102 xy 1
id code
101 xz
102 xz
102 xy
103 xz
103 xa
output
101 xz
102 xy
103 xa
研究表明,它们对分组查询有很大帮助
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
如果您发布了一些您尝试的代码,以及它如何无法按预期工作,则更有可能获得帮助。