我有一个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中没有支持
答案 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