Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除sql server中的部分重复项_Sql_Sql Server - Fatal编程技术网

删除sql server中的部分重复项

删除sql server中的部分重复项,sql,sql-server,Sql,Sql Server,我正在更改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 但是,我只想要(在这个场景

我正在更改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行(我需要修改第1行和第2行,因为它们包含重复的信息-第1、2和3列包含与第3行相同的信息,但第三行是最“完整的”)。第5行的原因与第4行相同


这是外部联接/相交问题吗?如何以这种方式创建视图?

假设Col1不为NULL,那么我们可以在所有4列总值上使用带有order by的行数

; 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

明确你的要求!!你说过我需要省略第一行和第二行,但是没有第二行!!总共有5行,哪一行需要考虑为第六行??你可以查看对结果集的排序。等级和密集等级-足够公平!很抱歉。。。我的部件出现复制/粘贴错误。现在所有问题都解决了。你说这是一个视图--你能显示视图下面的查询吗,或者这是相关的吗?我们是否只需要将显示的数据视为一个表并针对它编写一个查询?下一步:所有列都允许空值,还是只允许部分空值?我有一个针对它编写的存储过程。我只需要把桌子整理一下。我只希望查询使用最“完整”的数据版本(其他行变得无关紧要)。所有列都允许空值。事实上,我正在使用的发出查询的控件在遇到null时将退出,这就是为什么我需要使用最精简的行。