CASE оператор, использующий "тронк"? - PullRequest
0 голосов
/ 11 октября 2018

Моя цель состоит в том, чтобы сделать выписку по делу, в которой говорится, что когда Билл-кредит ТОЧНО x, когда Билл-платеж, затем Y, но поле Билл-кредит / платеж содержит также номер ссылки, такой как Билл-кредит # 123, поэтому я не могу использовать;

Случай {тип}, когда 'Билл Кредит' тогда X ИЛИ 0 КОНЕЦ, потому что в нем есть номер ссылки.

Si Я бы хотел что-то вроде;

Случай, когда {введите} "start" "Bill Credit", затем X То же самое для платежа по счету.

Спасибо,

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Это один из вариантов, который вы можете использовать:

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>

В зависимости от того, что у вас есть, этот код может потребоваться изменить.Если вы предоставите контрольный пример, вам будет легче помочь.

0 голосов
/ 11 октября 2018

Я немного сбит с толку, потому что {type} не будет содержать никаких ссылочных номеров, но похоже, что функция, которую вы ищете: SUBSTR()

Вот пример использования "

CASE WHEN SUBSTR({field}, 1, 11) = 'Bill Credit' THEN X ELSE 0 END

Первый аргумент - входная строка, второй - начальная позиция, а третий - длина возвращаемой подстроки.

...