我正在研究一个报告,我需要基于最高层次结构的所有数据。 我得到了结果,但一列值是重复的,因为它来自父组级别的数据源,我无法在较低的层次级别获得它。想要在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,因此您可以确定更好的属性... –