如何在Postgres中将表列数据从'LastName,FirstName'转换为'FirstName LastName'

时间:2014-08-14 08:25:34

标签: sql postgresql substring

如何从' LastName,FirstName'转换表格列数据?到#FirstName LastName'在Postgres。

因此,如果表格列包含“Ona”,那么Lisa'我想让它回归' Lisa Ona'。如果该列不包含' '然后我希望它返回null。我一直在尝试使用postgres函数SUBSTRING和REGEXP_REPLACE,但无法正常工作。

3 个答案:

答案 0 :(得分:2)

您需要strpossubstr个功能以及CASE才能返回NULL

SELECT CASE WHEN strpos(name,', ') > 0 
            THEN substr(name,strpos(name,', ') + 2)  ||' ' || substr(name,0, strpos(name,', '))
            ELSE NULL END
    FROM person

fiddle

答案 1 :(得分:1)

Nevermind使用SPLIT_PART函数制定解决方案

SELECT 
t1.sort_name,
split_part(t1.sort_name, ', ', 2)|| ' ' || split_part(t1.sort_name, ', ', 1)  
FROM artist t1
WHERE 
t1.sort_name LIKE '%, %'

答案 2 :(得分:0)

试试这个

select split_part(name,',',2) ||' '|| split_part(name,',',1) as "thename" from tblname     
where name LIKE '%,%'

String Functions and OperatorsPostgreSQL SPLIT PART