gpt4 book ai didi

sql - 使用两个不同的字符作为分隔符将一列拆分为三列

转载 作者:行者123 更新时间:2023-11-29 14:21:21 24 4
gpt4 key购买 nike

使用 PostgreSQL,我想根据两个(不是一个)字符拆分出现在我的表中的一列中的值。我的列 id2 包含如下值:

chr1:10000485-10006485@NM_022787@NMNAT1

我想相应地将列分成三列(同时使用“:”和“-”字符作为分隔符:

chr1  |  10000485  | 10006485@NM_022787@NMNAT1

目前我的代码是:

select split_part(id2, ':', 1)s1,split_part(id2, ':', 2) s2, id2
from MyTable

输出如下(两列,其中 s1 和 s2 是标题):

s1    |     s2
chr1 | 10000485-10006485@NM_022787@NMNAT1

如何根据“:”和“-”拆分id2?我可以使用 s2 以某种方式进行顺序拆分吗?

我尝试使用:

select split_part(id2, ':', 1)s1,split_part(id2, ':', 2) s2, split_part(s2, '-', 2)

但是得到错误信息:

ERROR:  column "s2" does not exist
LINE 7: ... ':', 1)s1,split_part(id2, ':', 2) s2, split_part(s2, '-', 2...
^
********** Error **********

ERROR: column "s2" does not exist
SQL state: 42703
Character: 160

最佳答案

您可以像这样使用“with”查询:

With q1 as (
select split_part(id2, ':', 1) s1, split_part(id2, ':', 2) s2, id2
from MyTable
)
select s1, s2, split_part(s2, '-', 3) s3
from q1;

第一次接听电话。我稍后会更正。

关于sql - 使用两个不同的字符作为分隔符将一列拆分为三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25274320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com