2017-06-05 19 views
1

我正在研究一個報告,我需要基於最高層次結構的所有數據。 我得到了結果,但一列值是重複的,因爲它來自父組級別的數據源,我無法在較低的層次級別獲得它。想要在SQL Server中將重複值轉換爲0

這裏是我的表:

enter image description here

+1

非常感謝卡納安。我試過你的解決方案,它工作完美! –

+0

但正如Siyual所提到的,您可能需要正確提供Order by子句才能將正確的記錄作爲最上面一行。但對於樣本,我提供了Group_Id作爲順序,但由於它是varchar,因此您可以確定更好的屬性... –

回答

0

您可以使用ROW_NUMBER和下面只有1提供值:

Select *, 
     Case 
      When Row_Number() over(partition by Parent_Group_Id order by Group_Id) = 1 
       then Numbers 
       else 0 
     end YourOuputColumn 
from yourtable 
+1

它們不是按'Numbers'排序的,它們希望按Group_ID排序。但我也認爲,如果組中有10個以上的數字,這將成爲一個問題,因爲這將使用字符串排序。 – Siyual

+0

謝謝Siyual。 –

相關問題