我可以在Case Statement中使用break或exit吗?

时间:2016-06-20 10:20:40

标签: sql oracle case

SELECT CASE
      WHEN vGlTransType = 'R' THEN tkt_seq_num
      WHEN vGlTransType in ('A','E','X') then 
      break 
   END

2 个答案:

答案 0 :(得分:0)

CASE中没有循环 使用

ELSE null

在END之前

在不满足其他条件时返回空值

答案 1 :(得分:0)

像亚历克斯提到的那样,你需要ELSE

SELECT CASE WHEN vGlTransType = 'R' THEN tkt_seq_num
            ELSE NULL
       END

ELSE NULL是默认的btw,这意味着您可以跳过它:

SELECT CASE WHEN vGlTransType = 'R' THEN tkt_seq_num
       END

你得到了很多负面回答,因为你使用了错误的词汇。我引用article I wrote on CASE

  

SQL是一种声明性语言:它不提供控制权   程序流程就像是命令式程序一样。不过,SQL   有类似的东西:案例表达。作为一个表达 - 而不是   而不是控制结构 - 意味着案例改变了公式的结果   (表达式)基于条件。它的用途类似于三元组   operator?:用其他编程语言。

您的问题表明您认为SQL CASE与C SWITCH(加CASE)类似。但事实并非如此。