我的目标是做出一个案例声明,说当Bill Credit当时是X,而Bill Payment然后是Y时,但是Bill Credit / Payment字段中也包含参考编号,例如Bill Credit#123,所以我不能使用; < / p>
在'Bill Credit'时为{type},然后在X ELSE 0 END处输入大小写,因为其中存在参考编号。
Si我想要类似的东西;
当{type}“以“ Bill Credit”开头时是X 支付账单也是一样。
谢谢
答案 0 :(得分:0)
我有点困惑,因为{type}
不会包含任何参考数字,但是听起来您正在寻找的功能是SUBSTR()
这是用法示例”
CASE WHEN SUBSTR({field}, 1, 11) = 'Bill Credit' THEN X ELSE 0 END
第一个参数是输入字符串,第二个参数是起始位置,第三个参数是要返回的子字符串的长度。
答案 1 :(得分:0)
这是您可能会使用的一种选择:
SQL> with test (bill) as
2 (select 'Bill Credit #123' from dual union all
3 select 'Bill Credit #566' from dual union all
4 select 'Bill Payment #32' from dual union all
5 select 'Bill Payment' from dual
6 )
7 select bill,
8 case when regexp_substr(bill, '\w+', 1, 2) = 'Credit' then 'X --> credit'
9 when regexp_substr(bill, '\w+', 1, 2) = 'Payment' then 'Y --> payment'
10 end result
11 from test;
BILL RESULT
---------------- -------------------------
Bill Credit #123 X --> credit
Bill Credit #566 X --> credit
Bill Payment #32 Y --> payment
Bill Payment Y --> payment
SQL>
根据您实际拥有的内容,可能需要修改此代码。如果提供测试用例,将更容易提供帮助。