Я пытаюсь написать заявление о случае ВИЧE, в котором если поле содержит либо число 8/9 в качестве первого символа, либо любое число между 0-9 во втором символе и любую букву между AE в последнем поле, сорвал бы это со строки.
Код, который у меня работает (по большей части):
Case When Substr(Upper(Trim(MBRCHR)),-3) like '9_A' or
Substr(Upper(Trim(MBRCHR)),-3) like '9_B' or
Substr(Upper(Trim(MBRCHR)),-3) like '9_C' or
Substr(Upper(Trim(MBRCHR)),-3) like '9_D' or
Substr(Upper(Trim(MBRCHR)),-3) like '9_E' or
Substr(Upper(Trim(MBRCHR)),-3) like '8_A' or
Substr(Upper(Trim(MBRCHR)),-3) like '8_B' or
Substr(Upper(Trim(MBRCHR)),-3) like '8_C' or
Substr(Upper(Trim(MBRCHR)),-3) like '8_D' or
Substr(Upper(Trim(MBRCHR)),-3) like '8_E' or
Then
Substr(Upper(Trim(MBRCHR)),-3)
Else
Null
end as DRVD,
То, что я хотел бы (кажется, не работает), это
Case When Substr(Upper(Trim(MBRCHR)),-3) like '[8-9][0-9][A-E]'
Then
Substr(Upper(Trim(MBRCHR)),-3)
Else
Null
end as DRVD,
Входные значения могут выглядеть следующим образом:
01512723290C
0151272329-C
ABC01199862590A
ABCD2642454890A
Я ищу вывод:
01512723290C - 90C
0151272329-C - Null
ABC01199862590A - 90A
ABCD2642454890A - 90A