如果字符串不包含子字符串,如何将字符串从一列传输到另一列

问题描述 投票:0回答:1

在我的 Postgres 表中,我有两列,其中一列有时有字符串,另一列是空的,但第一列中的一些字符串有时有子字符串,如果没有,我想将数据从第一列移动到另一列包含子字符串。

我有什么:

col1 col2
一些绳子
一些绳子
一些带有子串的字符串
一些绳子
一些绳子

我想要的:

col1 col2
一些绳子
一些绳子
一些带有子串的字符串
一些绳子
一些绳子

我不想选择它,我想更新所有表,因为当时该列被网络界面上的两个输入使用,并且用户在那里放置完全不同的信息,但是有一个子字符串模式,我发现,这可以帮助将数据从一列分离到另一列。我对 PostgreSQL 完全陌生,所以我需要你的建议。

sql postgresql
1个回答
0
投票

您可以使用 CASE 语句来更新表。

仅当 col1 为

LIKE '%substring%'

时更新

小提琴

UPDATE test
SET col2 = CASE 
              WHEN col1 NOT LIKE '%substring%' THEN col1 
              ELSE col2 
           END,
    col1 = CASE 
              WHEN col1 NOT LIKE '%substring%' THEN col2
              ELSE col1 
           END;

输出

col1 col2
一些绳子
一些绳子
一些带有子串的字符串
一些绳子
一些绳子
© www.soinside.com 2019 - 2024. All rights reserved.