CASE语句使用“ tronc”吗?

时间:2018-10-11 19:10:12

标签: plsql case netsuite

我的目标是做出一个案例声明,说当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 支付账单也是一样。

谢谢

2 个答案:

答案 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>

根据您实际拥有的内容,可能需要修改此代码。如果提供测试用例,将更容易提供帮助。