2013-07-25 19 views
0

我目前遇到了一個問題,我收到重複行,這是我需要做的事情。當條件滿足時,我需要抑制重複行,並在條件不滿足時列出剩餘的行。根據條件抑制SQL Server 2005中的重複行,並列出不符合條件的剩餘行

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 

所需的輸出:(未上市出貨#000133703這是重複的行,其中危害<> N. 我在這裏,我不能做多次搜索發現類似的情況。

SHPMNT_NO TOT_WEIGHT HAZARD 
--------- ---------- ------ 
000133701 100 
000133702 120 
000133703 461   Y 
000133704 100 
000133705 122 

對不起,我不知道如何顯示在一個黃色的塊狀文本或數據。幫助將不勝感激。

感謝

+0

張貼您正在使用,以獲得輸出:) –

+0

這是我的第一篇文章#1(問題)的查詢,所以我到達那裏。 – SQLnbe

回答

1

嘗試

SELECT SHPMNT_NO, TOT_WEIGHT, MAX(HAZARD) as HAZARD 
FROM myTable 
GROUP BY SHPMNT_NO, TOT_WEIGHT 
+0

這正是我正在尋找的。我從來沒有想過使用MAX()函數,然後再分組重複的行。我正在採用完全不同的路線,這對於識別雙骰子很有幫助,但它不會列出其他所有內容。謝謝 :-) – SQLnbe

0

如果危險是空白或「Y」,那麼你可以使用MAX()GROUP BY得到您想要的輸出:

SELECT SHPMNT_NO, TOT_WEIGHT, MAX(HAZARD) 'HAZARD' 
FROM YourTable 
GROUP BY SHPMNT_NO, TOT_WEIGHT 

這也將工作,如果危險是「Y」或「N 」。

+0

即使我沒有N列在該列中,您的方法也可以正常工作。它可以是'Y'或NULL。謝謝! – SQLnbe

+0

Aww夾,第二隻老鼠得到了奶酪。 ;) –