2009-10-30 113 views
1

我想知道是否有反正我可以比较SQL Server中的两列。从两个sql server表中交换列

两列位于两个不同的表中。

当列1的值大于第2列的值:
我想用列的值来代替第1列的值2

+2

你可以请你张贴表格的结构吗? – 2009-10-30 17:30:04

+0

这两个表具有相同的结构,我有每个表中的树列和插入相同数量的行。 我想比较的两列是INT。 – Roch 2009-10-30 17:34:30

回答

3
update table1 t1 
set t1.col1 = (select t2.col2 
        from table2 t2 
        where t2.id = t1.id 
        and t1.col1 < t1.col2) 

这样的事情应该很容易做到。

我看到的唯一难点是将table2中的行与table1中的行匹配。在我的例子中,我认为两个表共享一个唯一的“id”列,可以轻松进行匹配。用更合适的东西修改查询。

+0

在SQL SERVER中,您无法将昵称添加到UPDATE中的表中。所以'UPDATE table1 t1'将不起作用。 – 2009-10-30 17:39:44

1

你应该能够做这样的事:

update tablename set column1=column2 
from table1 inner join table2 on joincondition 
where column1 < column2; 

如果没有实际的表结构,很难做到更具体。