更改以逗号分隔的字符串中字符的位置

时间:2013-09-30 14:27:53

标签: sql regex oracle

我有以下字符串,以逗号和“;”分隔必须反转由“;”分隔的所有字符串的逗号分隔值。

示例:

-7.820420745913251,-38.221914235592905;-7.838209448558699,-38.206725420257172;-7.90608019095979,-38.238334576496392;-7.905396010088811,-38.163485189211315;-7.929205504398873,-38.168137619133972;-7.940015562160337,-38.155001346411183;-7.940973415379707,-38.154590837888591;-7.941520760076489,-38.154180329366007;

结果:

-38.221914235592905,-7.820420745913251;-38.206725420257172,-7.838209448558699;...

请帮助我!!

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT regexp_replace(
'-7.820420745913251,-38.221914235592905;-7.838209448558699,-38.206725420257172;-7.90608019095979,-38.238334576496392;-7.905396010088811,-38.163485189211315;-7.929205504398873,-38.168137619133972;-7.940015562160337,-38.155001346411183;-7.940973415379707,-38.154590837888591;-7.941520760076489,-38.154180329366007;',
'([^,]*),([^;]*);','\2,\1;') RESULT
  FROM dual;

RESULT
--------------------------------------------------------------------------------
-38.221914235592905,-7.820420745913251;-38.206725420257172,-7.838209448558699;-38.238334576496392,-7.90608019095979;-38.163485189211315,-7.905396010088811;-38.168137619133972,-7.929205504398873;-38.155001346411183,-7.940015562160337;-38.154590837888591,-7.940973415379707;-38.154180329366007,-7.941520760076489;

有关详细信息,请参阅REGEXP_REPLACE documentation