TSQL SELECT CASE & 更改第二列值
TSQL SELECT CASE & change second column value
我需要根据 ColumnA
的值更改 ColumnB
的状态。类似伪代码的东西:
CASE WHEN ColumnA = 'True' THEN ColumnB = 'Alert' ELSE ColumnB
我正在使用 Azure SQL 服务器。
伪代码其实看起来很正确。只需将作业放到 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
根据您提供的示例,我认为您甚至不需要 case
语句。一个简单的 update
就可以了。
update YourTable
set ColumnB = 'Alert'
where ColumnA = 'True'
另一方面,如果您实际上是根据其他条件同时更新其他列,这会阻止您插入 where ColumnA = 'True'
子句,那么您可以使用 case
这样声明:
update YourTable
set ColumnB = case when ColumnA = 'True' then 'Alert' else ColumnB end,
ColumnX = ...
from YourTable
我需要根据 ColumnA
的值更改 ColumnB
的状态。类似伪代码的东西:
CASE WHEN ColumnA = 'True' THEN ColumnB = 'Alert' ELSE ColumnB
我正在使用 Azure SQL 服务器。
伪代码其实看起来很正确。只需将作业放到 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
根据您提供的示例,我认为您甚至不需要 case
语句。一个简单的 update
就可以了。
update YourTable
set ColumnB = 'Alert'
where ColumnA = 'True'
另一方面,如果您实际上是根据其他条件同时更新其他列,这会阻止您插入 where ColumnA = 'True'
子句,那么您可以使用 case
这样声明:
update YourTable
set ColumnB = case when ColumnA = 'True' then 'Alert' else ColumnB end,
ColumnX = ...
from YourTable