如何从' LastName,FirstName'转换表格列数据?到#FirstName LastName'在Postgres。
因此,如果表格列包含“Ona”,那么Lisa'我想让它回归' Lisa Ona'。如果该列不包含' '然后我希望它返回null。我一直在尝试使用postgres函数SUBSTRING和REGEXP_REPLACE,但无法正常工作。
答案 0 :(得分:2)
您需要strpos
和substr
个功能以及CASE
才能返回NULL
。
SELECT CASE WHEN strpos(name,', ') > 0
THEN substr(name,strpos(name,', ') + 2) ||' ' || substr(name,0, strpos(name,', '))
ELSE NULL END
FROM person
答案 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 '%,%'