基于条件抑制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”就是空的。谢谢哎呀,糟了,第二只老鼠得到了奶酪