基于条件抑制SQL Server 2005中的重复行,并列出不符合';不符合条件
我现在遇到了一个问题,我得到了重复的行,下面是我需要做的。我需要在满足条件时抑制重复行,并在不满足条件时列出剩余行基于条件抑制SQL Server 2005中的重复行,并列出不符合';不符合条件,sql,duplicates,hide,row,conditional-statements,Sql,Duplicates,Hide,Row,Conditional Statements,我现在遇到了一个问题,我得到了重复的行,下面是我需要做的。我需要在满足条件时抑制重复行,并在不满足条件时列出剩余行 SELECT SHPMNT_NO, TOT_WEIGHT, HAZARD FROM dbo.DVUD_Prep 电流输出: SHPMNT_NO TOT_WEIGHT HAZARD --------- ---------- ------ 000133701 100 000133702 120 000133703 461 000133703
SELECT
SHPMNT_NO, TOT_WEIGHT, HAZARD
FROM
dbo.DVUD_Prep
电流输出:
SHPMNT_NO TOT_WEIGHT HAZARD
--------- ---------- ------
000133701 100
000133702 120
000133703 461
000133703 461 Y
000133704 100
000133705 122
期望输出:(未列出装运#00013703,这是重复的行,其中危险N。
我在这里做了多次搜索,但找不到类似的场景
SHPMNT_NO TOT_WEIGHT HAZARD
--------- ---------- ------
000133701 100
000133702 120
000133703 461 Y
000133704 100
000133705 122
很抱歉,我不知道如何在黄色方框中显示文本或数据。如有帮助,将不胜感激
谢谢如果Hazard为空或“Y”,则您可以使用
MAX()
和分组方式
获得所需的输出:
SELECT SHPMNT_NO, TOT_WEIGHT, MAX(HAZARD) 'HAZARD'
FROM YourTable
GROUP BY SHPMNT_NO, TOT_WEIGHT
如果危险为“Y”或“N”,这也会起作用。试试看
SELECT SHPMNT_NO, TOT_WEIGHT, MAX(HAZARD) as HAZARD
FROM myTable
GROUP BY SHPMNT_NO, TOT_WEIGHT
发布您用于获取输出的查询:)这是我关于Stackoverflow的第一篇帖子(问题),所以我就到了。太好了,这正是我想要的。我从未想过使用MAX()函数,然后将重复的行分组。我走的是完全不同的路线,这有助于识别DUP,但它不会列出所有其他内容。谢谢:-)你的方法也很有效,尽管我在那个专栏里没有N。它不是“Y”就是空的。谢谢哎呀,糟了,第二只老鼠得到了奶酪