我有一个表,其中我有一个重复的记录,具有不同的名称,例如
id classname
123 class1
123 unknown 然后我也有一些只有唯一类名的标签,例如
id classname
124 class2
125 unknown 所以现在我运行select查询,得到结果
id classname
123 class1
123 unknown
124 class2
125 unknown 我想以这样一种方式返回值,即选择其中一个重复项
id classnae
123 class1
124 class2
125 unknown上面提到的就是我必须得到的结果。我使用了左外部连接来写这段代码。
select t.id,t.classname from Table1 t
left outer join
(select id,classname from Table1 GROUP BY id
HAVING COUNT(id) > 1 )
s on s.Tagname = t.TagName 但我得到的记录数量与我以前使用重复数据时获得的记录数量相同。
写这篇文章需要帮助
发布于 2013-10-09 14:46:16
根据您对Szymon的回答的评论,尝试以下查询:
select distinct id,
(select top 1 classname from table1 t2 where t2.id = t.id and classname!='unknown' order by case classname when 'unknown' then 0 else 1 end) classname
from Table1 t 正如您所要求的::您不希望获取具有“未知”名称的类。
https://stackoverflow.com/questions/19264040
复制相似问题