是否可以在单个 select 语句中创建,如下所示:
SELECT
name,
CASE
WHEN name = 'a' THEN 'a'
ELSE 'b'
END tag,
CASE
WHEN tag = 'a' THEN 'a2'
ELSE tag = 'b2'
END tag2
FROM table_name
我的原因是在单个语句的前一列中,我想在我的另一列中使用它的 case 语句结果。
我想知道是否可以使用以下变量来完成:
SELECT
name,
CASE
WHEN name = 'a' THEN 'a'
ELSE 'b'
END @result = tag,
CASE @result
WHEN 'a' THEN 'a2'
ELSE 'b2'
END tag2
FROM table_name
我知道第二个代码不正确,但这是我需要的逻辑。多谢你们!
您需要重复表达式,或者在单独的范围内派生它,例如: