gpt4 book ai didi

mysql - 如何使用下划线(_)和句点(.)拆分值?

转载 作者:行者123 更新时间:2023-11-29 01:37:45 26 4
gpt4 key购买 nike

我有一个包含字符串的表:

Orig_Value
-----------
Abc_abc_1.2.3
PQRST.abc_1
XY.143_z

我想使用 _. 将其拆分为所需的输出:

Original_Value    Col1    Col2   Col3   Col4   Col5
------------- ---- ---- ---- ---- ----
Abc_abc_1.2.3 Abc abc 1 2 3
PQRST.abc_1 PQRST abc 1
XY.143_z XY 143 z

查询 MSSql 和 MySQL 或 PostgreSQL 即可。

我尝试像下面的查询那样使用子字符串函数,但它不适用于我拥有的所有数据:

code

最佳答案

PostgreSQL

以下作为例子,

CREATE TABLE foo (org_val TEXT);

INSERT INTO foo
VALUES ('Abc_abc_1.2.3')
,('PQRST.abc_1')
,('XY.143_z');

使用 regexp_split_to_array()

SELECT org_val
,a [1] col1
,a [2] col2
,a [3] col3
,a [4] col4
,a [5] col5
FROM (
SELECT org_val
,regexp_split_to_array(replace(org_val, '.', '_'),'_') AS a
FROM foo
) t

结果:

org_val       col1  col2 col3 col4 col5 
------------- ----- ---- ---- ---- ----
Abc_abc_1.2.3 Abc abc 1 2 3
PQRST.abc_1 PQRST abc 1 NULL NULL
XY.143_z XY 143 z NULL NULL

SQLFIDDLE-DEMO

关于mysql - 如何使用下划线(_)和句点(.)拆分值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35330341/

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