SQL表达式的分离

时间:2010-12-12 13:25:33

标签: sql text-parsing

我有一个输入:

(123)555-234-556,(321)333-324-223

我需要分离并将前半部分(直到逗号)分配给变量A,将后半部分分配给变量B. 此外,我需要能够将部件形成为:

123-555-234-556

2 个答案:

答案 0 :(得分:0)

PostgreSQL解决方案:

SELECT substring(t,2,3)||'-'||substring(t,6)
FROM unnest(string_to_array('(123)555-234-556,(321)333-324-223',',')) as t

答案 1 :(得分:0)

备用PostgreSQL解决方案,假设您希望将值分为两个单独的列:

首先将它们都放在两列中(我怀疑你的意思是列)。

select 
substring(input,0,position(',' in input)) as A, 
substring(input,position(',' in input)+1) as B
from (select '(123)555-234-556,(321)333-324-223'::varchar as input) fakeInput

第二部分是

substring(A,2,3) || '-' || substring(A,6) as modifiedA