我正在研究一個報告,我需要基於最高層次結構的所有數據。 我得到了結果,但一列值是重複的,因爲它來自父組級別的數據源,我無法在較低的層次級別獲得它。想要在SQL Server中將重複值轉換爲0
這裏是我的表:
我正在研究一個報告,我需要基於最高層次結構的所有數據。 我得到了結果,但一列值是重複的,因爲它來自父組級別的數據源,我無法在較低的層次級別獲得它。想要在SQL Server中將重複值轉換爲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
它們不是按'Numbers'排序的,它們希望按Group_ID排序。但我也認爲,如果組中有10個以上的數字,這將成爲一個問題,因爲這將使用字符串排序。 – Siyual
謝謝Siyual。 –
非常感謝卡納安。我試過你的解決方案,它工作完美! –
但正如Siyual所提到的,您可能需要正確提供Order by子句才能將正確的記錄作爲最上面一行。但對於樣本,我提供了Group_Id作爲順序,但由於它是varchar,因此您可以確定更好的屬性... –