SELECT CASE
WHEN vGlTransType = 'R' THEN tkt_seq_num
WHEN vGlTransType in ('A','E','X') then
break
END
答案 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
)类似。但事实并非如此。