我了解如何使用 case 语句返回不同的值:
SELECT CASE Color
WHEN 'Blue' THEN 'Water'
WHEN 'Black' THEN 'Oil'
WHEN 'Red' THEN 'Blood'
END
FROM dbo.Liquid
有没有办法用它来控制流程而不是 IF-ELSE,即
DECLARE @Color varchar()
SELECT @Color = Color FROM dbo.Liquid WHERE ID = @MyID
CASE (@Color)
WHEN 'Blue' THEN SELECT 'Water'
WHEN 'Black' THEN SELECT 'Oil'
WHEN 'Red' THEN PRINT 'HELP! I''m bleeding!'
END
最佳答案
不,CASE expression不能用于控制 Transact-SQL 语句、语句 block 、用户定义函数和存储过程的执行流程。
有关流量控制方法的列表,请参阅 Control-of-Flow Language (Transact-SQL) .
关于sql - tSQL CASE 控制执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959126/