TSQL SELECT CASE&更改第二列值

时间:2015-08-31 17:47:10

标签: sql tsql azure-sql-database

我需要根据ColumnA的值更改ColumnB的状态。类似伪代码的东西:  “例如,当ColumnA ='True'THEN ColumnB ='Alert'ELSE ColumnB”

我正在使用Azure SQL Server。

2 个答案:

答案 0 :(得分:5)

伪代码实际上似乎非常正确。只需将作业放到ColumnB并添加end

即可
SELECT ColumnA, 
       CASE WHEN ColumnA = 'True' THEN 'Alert' ELSE ColumnB END
FROM   MyTable

另外,请注意,您可以使用稍微更整洁的语法(虽然这主要是品味),因为您拥有的所有(一个)条件都在同一个表达式上:

SELECT ColumnA, 
       CASE ColumnA WHEN 'True' THEN 'Alert' ELSE ColumnB END
FROM   MyTable

答案 1 :(得分:2)

根据您提供的示例,我认为您甚至不需要script声明。一个简单的case就可以了。

update

另一方面,如果您实际上是根据其他条件同时更新其他列,这会阻止您插入update YourTable set ColumnB = 'Alert' where ColumnA = 'True' 子句,那么您可以使用where ColumnA = 'True'执行此操作这样说:

case