在我的SELECT
查询中,我想在我的CASE
中为一个名为isactive的值设置一个条件,以便如果当前行的列类型是“adhoc”,那么将isactive的值设置为“n/a”。
SELECT CASE Type
WHEN 'scheduled' THEN 'Scheduled'
WHEN 'adhoc' THEN 'AdHoc'
ELSE 'Unknown'
END AS 'Type',
CASE IsActive
WHEN (Type) = 'adhoc' THEN 'n/a'
WHEN 0 THEN 'Stopped'
WHEN 1 THEN 'Active'
END AS 'Status'
FROM MyTable
但我在网上发现了这个错误:
“=”附近的语法不正确。
如何根据当前行上的条件做出决策?
最佳答案
您的第二个case
基于一个列,然后您试图将条件放入when
中,这是不允许的:
CASE IsActive
WHEN (Type) = 'adhoc' THEN 'n/a'
WHEN 0 THEN 'Stopped'
WHEN 1 THEN 'Active'
END AS 'Status'
我想你是想这么做的(使用不带列的
case
,并将条件放入when
):CASE
WHEN [Type] = 'adhoc' THEN 'n/a'
WHEN IsActive = 0 THEN 'Stopped'
WHEN IsActive = 1 THEN 'Active'
END AS 'Status'