sql - tSQL CASE 控制执行

标签 sql sql-server tsql syntax

我了解如何使用 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/

相关文章:

c# - 打开SQL连接时算术溢出异常

php - 如何构建一个查询,对切换发件人和收件人的交易余额进行求和

sql - 如何在H2数据库SQL查询中使用当前日期

mysql - 以前的部分?自加盟?

sql - 连接到数据库失败。汤姆猫 Apache

sql - 旋转单行

MySQL 查询 : 3 tests passed, 1 失败

sql - sql server中的累计计算

asp.net - 如何在 ASP.NET 中实现悲观锁定

sql-server - 列的数据类型不能参与列存储索引