我正在改变SQL Server中的现有视图。我的工会声明创造了以下内容:
Col1 | C2 | C3 | C4
-----|----|------|-----
1 A | B | NULL | NULL
2 A | B | C | NULL
3 A | B | C | D
4 E | F | NULL | NULL
5 E | F | G | NULL
但是,我只想(在这种情况下)第3行和第5行(我需要省略一个和两个,因为它们包含重复信息 - 第一列,第二列和第三列包含与第三行相同的信息,但第三行是最完整的')。第5行与第4行相同。
这是外连接/交叉问题吗?你怎么用这种方式创建一个视图?
答案 0 :(得分:0)
假设Col1不是NULL,那么我们可以使用ROW_NUMBER和所有4列总值的顺序
; with cte
AS
(
select ROW_NUMBER() over ( partition by col1 order by (coalesce(Col1,'')+
coalesce([C2],'') +
coalesce([C3],'') +
coalesce([C4],'') ) desc) as seq,
*
FROM Table1
)
select * from cte
where seq =1