我有一个场景,我正在编写SQL Server Reporting Services
以创建Tablular报表并卡住了一个点,在该点我得到一列的重复值。下面是从代码输出样本:在SQL Server中处理Null值和重复记录
AppID EmpID EmpName
2002912 81555 NULL
2002912 81588 Jenn - 81588
2026880 9328 NULL
2026880 9628 Brad - 09628
2027065 92174 Julie - 92174
2027065 92714 NULL
2028989 72138 NULL
2028989 91366 Alan - 91366
2029233 17438 NULL
2029233 53712 Brad - 53712
2031585 37902 NULL
2031588 17723 Richard - 17723
2031591 54551 Paula - 54551
2031593 52240 Sarah - 52240
2031597 72778 Daisy - 72778
2031603 12659 NULL
通知第一coulmn(AppID
)具有几个重复和对应的列EmpName
要么Null
或有一定的价值。我想消除所有重复的AppID's
,其中EmpName
是null
。
如果对于唯一的AppID
(请参考最后一行)没有空值,我可以直截了当地处理大量数据,因此我也无法硬编码。
另请注意,所有这三根柱子是从不同的表来,并已LEFT JOIN
到AppID
表。请让我知道,如果你需要看代码,我没有粘贴在这里,因为它很复杂,但可能并不需要。
任何形式的帮助和建议是appreciated.Thank你
使用'ROW_NUMBER OVER(分区通过的appid ORDER BY EmpName NULLS FIRST)'然后选择行2.I'm不知道有关语法,但是这是一般的想法。或者如果NULLS FIRST不可用,则使用'ORDER BY(当EmpNAme为NULL,否则为0 ELSE 1 END时)。 – Mihai 2014-10-01 16:16:56
我不想消除'AppID'唯一的'null'值。那么在这种情况下,如何在重复的'AppID''和唯一'AppID''之间区分? – 2014-10-01 16:26:22