2017-06-05 71 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。 –