Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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查询以查找一列值与另一行上的另一列匹配的行_Sql_Sql Server_Tsql - Fatal编程技术网

SQL查询以查找一列值与另一行上的另一列匹配的行

SQL查询以查找一列值与另一行上的另一列匹配的行,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个数据库表,其中有一个名为“symbol”的列,它通过非聚集索引是唯一的。 我们现在需要更改“symbol”列中的数据,使用同一表中另一列(如column2)中的数据 正在尝试进行更新,例如 update table set symbol = column2 where column2 <> '' and deleted = 0 更新表 设置符号=第2列 其中第2列“”和 已删除=0 导致“无法在对象中插入重复的键行”错误,因此表中必须有1行或多行的符号列中的值等于第2列中

我有一个数据库表,其中有一个名为“symbol”的列,它通过非聚集索引是唯一的。 我们现在需要更改“symbol”列中的数据,使用同一表中另一列(如column2)中的数据

正在尝试进行更新,例如

update table
set symbol = column2
where column2 <> '' and
deleted = 0
更新表
设置符号=第2列
其中第2列“”和
已删除=0
导致“无法在对象中插入重复的键行”错误,因此表中必须有1行或多行的符号列中的值等于第2列中的值,或者某些行的第2列值重复

我可以在column2中找到重复的行,但我很难找到一个查询来查找那些在column2中任何一行的symbol列中都有值的行。有人有什么想法吗

谢谢。

测试数据:

select t1.symbol, count(0) as rows
from table t1
join table t2 on t2.column2 = t1.symbol
group by t1.symbol
symbol      column2
----------- -----------
1           1
2           1
3           3
4           5
查找在中存在的符号列中具有值的行 第2列中的任意一行

结果:

symbol      column2
----------- -----------
1           1
3           3
symbol      column2
----------- -----------
1           1
或者这可能取决于你想要的结果

select symbol, column2
from table as T1
where exists (select *
              from table as T2
              where T1.symbol = T2.column2 and
                    T1.symbol <> T2.symbol)
symbol      column2
----------- -----------
1           1