-1

我有一个表客户,其列为“名称”,客户名称为其值。该列值的一个示例是“Aditya, Narayan”。但我希望名字是“Narayan, Aditya”。如何在 oracle SQL 开发人员查询中做到这一点?PS 我无法将表格的图像粘贴为公司政策。

4

1 回答 1

2

两个简单的选项包括substr + instr组合 ( new_name_1) 或正则表达式 ( new_name_2and new_name_3)。

SQL> with customer (name) as
  2    (select 'Aditya,Narayan' from dual union all
  3     select 'Little,Foot'    from dual
  4    )
  5  select name,
  6    --
  7    substr(name, instr(name, ',') + 1) ||','|| substr(name, 1, instr(name, ',') - 1) new_name_1,
  8    --
  9    regexp_substr(name, '\w+$') ||','|| regexp_substr(name, '^\w+') new_name_2,
 10    --
 11    regexp_replace(name, '(.*),(.*)', '\2,\1') new_name_3
 12  from customer;

NAME           NEW_NAME_1           NEW_NAME_2           NEW_NAME_3
-------------- -------------------- -------------------- --------------------
Aditya,Narayan Narayan,Aditya       Narayan,Aditya       Narayan,Aditya
Little,Foot    Foot,Little          Foot,Little          Foot,Little

SQL>
于 2022-02-18T11:14:00.407 回答