oracle 中case when then 字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 中case when then 字符串相关的知识,希望对你有一定的参考价值。
A1 表
node BUSINESS_LIST
(varchar2)
1 10,20
B1表
node BUSINESS_LIST
(char)
1 10
1 20
1 30
我现在想写个语句作个判断,但只能出来一个结果,in 中直接改成'10','20'则可以出来二条,请高手帮忙看看
select a.node,b.BUSINESS_LIST from A1.a left join B1.b on a.node = b.node and B1.BUSINESS_LIST in
(CASE WHEN a.BUSINESS_LIST = '10,20' THEN ( '''10'''||','||'''20''') else b.BUSINESS_LIST END)
REGEXP_LIKE(A.BUSINESS_LIST,B.BUSINESS_LIST);
这样子就可以了。 参考技术B Case when 的用法,简单Case函数
简单CASE表达式,使用表达式确定返回值:
语法:
CASE search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN result2
...
WHEN expressionN THEN resultN
ELSE default_result
搜索CASE表达式,使用条件确定返回值:
语法:
CASE
WHEN condition1 THEN result1
WHEN condistion2 THEN result2
...
WHEN condistionN THEN resultN
ELSE default_result
END
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
Oracle CASE WHEN函数用法
CASE函数有两种格式:1.简单CASE函数。2.CASE搜索函数。
--简单Case函数 CASE sex WHEN ‘1‘ THEN ‘男‘ WHEN ‘2‘ THEN ‘女‘ ELSE ‘其他‘ END
--Case搜索函数 CASE WHEN sex = ‘1‘ THEN ‘男‘ WHEN sex = ‘2‘ THEN ‘女‘ ELSE ‘其他‘ END
两种方式可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
--下面这段SQL,你永远无法得到“第二类”这个结果 CASE WHEN col_1 IN ( ‘a‘, ‘b‘) THEN ‘第一类‘ WHEN col_1 IN (‘a‘) THEN ‘第二类‘ ELSE‘其他‘ END
以上是关于oracle 中case when then 字符串的主要内容,如果未能解决你的问题,请参考以下文章