Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从';转换表列数据;LastName、FirstName';至';FirstName LastName';博士后_Sql_Postgresql_Substring - Fatal编程技术网

Sql 如何从';转换表列数据;LastName、FirstName';至';FirstName LastName';博士后

Sql 如何从';转换表列数据;LastName、FirstName';至';FirstName LastName';博士后,sql,postgresql,substring,Sql,Postgresql,Substring,如何在Postgres中将表列数据从'LastName,FirstName'转换为'FirstName LastName' 因此,如果表列包含'Ona,Lisa',我希望它返回'Lisa Ona'。如果列不包含“,”,那么我希望它返回null。我一直在尝试使用postgres函数SUBSTRING和REGEXP_REPLACE,但无法实现任何功能。您需要strop和substr函数以及CASE返回NULL SELECT CASE WHEN strpos(name,', ') > 0

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


因此,如果表列包含'Ona,Lisa',我希望它返回'Lisa Ona'。如果列不包含“,”,那么我希望它返回null。我一直在尝试使用postgres函数SUBSTRING和REGEXP_REPLACE,但无法实现任何功能。

您需要
strop
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

Nevermind使用拆分函数制定了一个解决方案

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

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

而且

谢谢,我把你的答案标记为正确的,虽然我现在自己已经想出了一个替代方案,不确定哪一个是最好的