用于根据多个条件更新多个列的SQL代码

时间:2016-10-07 07:16:54

标签: sql sybase

我是编程新手。 我需要帮助编写SQL语句,它可以根据多个条件更新多个列。

以下是我的要求的示例代码:

UPDATE table1
SET t1.column1 = value1 IF <condition1>
SET t1.column2 = value2 IF <condition2>
...
...
FROM table1 t1, table2 t2, ...
WHERE <common conditions>

- 谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在SET子句中使用CASE条件

UPDATE table1
SET table1.column1 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END,
table1.column2 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END
.
.
WHERE
.
.

编辑:要使用多个表进行更新,您可以根据常见条件使用表之间的连接

UPDATE table1

SET table1.column1 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END,
table1.column2 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END

FROM table1,table2
WHERE table1.commonCol = table2.commonCol 
<AND/OR> <other conditions>