用于执行代码的Case语句

时间:2014-11-12 00:36:48

标签: sql sql-server sql-server-2008

我很熟悉在Select语句等中使用Case。

但我不确定如何使用它来执行代码,比如使用代替If语句。

有谁知道它是否可能?我尝试了这个,但没有工作:

CASE @Variable
  WHEN 0 THEN 
      SELECT * FROM TABLE1
      ...
      BREAK;
  WHEN 1 THEN
      SELECT * FROM TABLE2
      ...
      BREAK;
END

换句话说,我应该得到这个功能:

if(@Variable=1) SELECT * FROM TABLE1
if(@Variable=2) SELECT * FROM TABLE2

但是为参数使用case语句。

这是一个代码示例,所以请不要从字面上理解。目标是找出是否可以像IF THEN语句一样使用CASE语句。就像在switch

中使用c#一样

1 个答案:

答案 0 :(得分:2)

据我所知,CASE 语句不存在。 SQL标准仅提及CASE expressions,您已了解其中的this questionIF...ELSE statements已经提到过这一点。

请注意,{{3}}是特定于供应商的,并且不属于标准。但他们基本上就是我们在这方面所拥有的一切。