如何在SQL中更新多个列?

时间:2013-12-23 07:00:59

标签: sql sql-server sql-server-2012

我有一个SQL,用于使用复杂的大小写条件同时更新多行。目前,我使用相同的CASE条件设置2列。

例如,我需要做类似的事情:

UPDATE  MyTable
SET([MyColumn1], [MyColumn2]) = ('','')

我现在正在做的是:

UPDATE  MyTable
SET [MyColumn1] = COMPLEX CASE RETURN STRING,
    [MyColumn2] = 100% SAME COMPLEX CASE RETURN A Different STRING

我试过但得错了。这在SQL SERVER中是否可行?

IBM Db支持它,http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.sqls.doc/sqls919.htm 但似乎SQL Server中没有支持

3 个答案:

答案 0 :(得分:1)

更新命令语法为:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

答案 1 :(得分:1)

   update mytable
     SET [MyColumn1] = COMPLEX CASE RETURN STRING,
        [MyColumn2] = 100% SAME COMPLEX CASE RETURN A Different STRING
     WHERE some_column=some_value;// please have the where condition

然后我们才能更新相应的原始数据。

更新意味着我们正在更改一些现有值,因此我们需要提供我们想要进行此更改的位置,因为我们可以使用where条件。 例 更新作者

set name="onv kurup"
set book="oralude"
where authorid=112;

如果我们没有给出where条件,那么表格的所有数据都会在我们提供的更新查询中以相同的值更新

答案 2 :(得分:-1)

经过大量搜索后,我找到了答案,

update table1
set col1 = a.col1, col2 = a.col2, col3 = a.col3 from
table1 as a Join on tablefunction
where table1.col1 <expression>

http://geekswithblogs.net/phoenix/archive/2009/10/13/update-multiple-columns-on-sql-server.aspx