我有一个表客户,其列为“名称”,客户名称为其值。该列值的一个示例是“Aditya, Narayan”。但我希望名字是“Narayan, Aditya”。如何在 oracle SQL 开发人员查询中做到这一点?PS 我无法将表格的图像粘贴为公司政策。
问问题
41 次
1 回答
2
两个简单的选项包括substr + instr
组合 ( new_name_1
) 或正则表达式 ( new_name_2
and 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 回答