【发布时间】:2011-07-05 13:49:55
【问题描述】:
我正在尝试编写查询以从下表 (valid_columns) 中删除重复记录,并仅保留 [order] 编号可能最低的记录。
例如,在下表中,我想删除重复的行、区域 2,3 和作业 3,并以尽可能低的 [order] 保留记录。
例如输入表 valid_columns 如下所示:
name col_order
-------------
job 1
job 3
status 2
cust 2
county 1
state 1
region 1
region 2
region 3
so 4
期望的输出:
name col_order
-------------
job 1
status 2
cust 2
county 1
state 1
region 1
so 4
我正在尝试修复一个错误,但我无法弄清楚 SQL。目前它使用删除语句和子查询。目前使用的查询如下所示:
-- 3) 删除重复的列
DELETE
FROM valid_columns
WHERE NOT ( col_order = ( SELECT TOP 1 col_order
FROM valid_columns firstValid
WHERE name = firstValid.name
AND col_order = firstValid.col_order
ORDER BY col_order ASC ))
但是,这只会返回以下内容,这是不正确的:
name col_order
-------------
job 1
county 1
state 1
region 1
非常感谢
【问题讨论】:
标签: .net sql-server sql-server-2005 tsql