Добыча струн в постгрес - PullRequest
0 голосов
/ 20 сентября 2018

В столбце есть это значение, ниже я показал, что я использовал для извлечения данных из этого поля.

with A4 as 
(
select 'govinda j/INDIA_MH/9975215025' as employee_name from dual
)
select employee_name , 
TRIM(SUBSTR(upper(A4.employee_name),1,INSTR(A4.employee_name,'/',1,1)-1)) AS employee_name1,
  TRIM(SUBSTR(upper(A4.employee_name),INSTR(A4.employee_name,'/',1,1)+1,INSTR(A4.employee_name,'_',1,1)-INSTR(A4.employee_name,'/',1,1)-1)) AS Country,
  TRIM(SUBSTR(upper(A4.employee_name),INSTR(A4.employee_name,'_',1,1)+1,INSTR(A4.employee_name,'/',1,2)-INSTR(A4.employee_name,'_',1,1)-1)) AS State

   from A4

Вывод

EMPLOYEE_NAME                   EMPLOYEE_NAME1   COUNTRY       STATE
govinda j/INDIA_MH/9975215025   GOVINDA J        INDIA         MH

Теперь наша система баз данных изменилась, я пытаюсь добиться того же в postgres.

1 Ответ

0 голосов
/ 20 сентября 2018

Один из вариантов: split_part():

select split_part(employee_name, '/', 1) as employee_name1,
       split_part(split_part(employee_name, '/', 2), '_', 1) as country,
       split_part(split_part(employee_name, '/', 2), '_', 2) as state
from a4
...