case语句存在两种形式:case和搜刮式case。
两者最次要的辨别是:case语句能够设定选择器,由选择器决议需供执止哪组动做;
而搜刮式case语句没有选择器,搜刮条件按顺序递次执止,从而决议执止哪组动做。
构造:case语句的构造如下:
case selector
when expression 1 then statement 1;
when expression 2 then statement
2;
......
when expression N then statement
N;
else statement N+1;
end case;
搜刮式case语句的构造如下:
case
when expression 1 then statement 1;
when expression 2 then statement
2;
......
when expression N then statement
N;
else statement N+1;
end case;
工做流程:case语句的工做流程如下:
1.计算选择器;
2.将表达式1与选择器对照,匹配则返回statement
1,完毕case语句,否则进止下一步;
3.将表达式2与选择器对照,匹配则返回statement 2,完毕case语句,否则进止下一步;
4.以次类推,直到将表达式N与选择器进止对照,匹配则返回statement
N,否回statement N+1 ,
完毕case语句。
搜刮式case语句的工做流程如下:
1.断定条件1的计算成效可否为真,为真则返回statement
1,完毕case语句,否则进止下一步;
2.断定条件1的计算成效可否为真,为真则返回statement
2,完毕case语句,否则进止下一步;
3.以此类推,直到断定条件N的计算成效可否为真,为真则返回statement
N,否则返回
statement N+1 ,完毕case语句。
示例:
case语句示例:select case
to_char(sysdate,"yyyymm")
when "201001"
then
"一月"
when "201002"
then
"两月"
when
"201003" then
"三月"