Postgres中的字符串提取

时间:2018-09-20 11:12:57

标签: sql postgresql postgresql-9.1

此列中有此值,在下面我已显示我用来从该字段提取数据。

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 :(得分:1)

一个选项是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