繁体   English   中英

字符串到列 SQL - PostgreSQL

[英]String to Columns SQL - PostgreSQL

这个问题让我很头疼。 我在 PostgreSQL 中有一个列,它是一个字符串:

示例:bp Apx14 L 1 0 3

字符始终具有相同的结构,前两个字母表示一件事,等等。

所以 output 应该进入列:

输出

想不通,先谢谢了

您可以使用substring() function:

select substring(the_col, 1, 2) as a,
       substring(the_col, 3, 5) as b,
       substring(the_col, 8, 1) as c,
       substring(the_col, 9, 1) as d,
       substring(the_col, 10, 1) as e,
       substring(the_col, 11, 1) as f
from the_table

substring()的另一种形式

substring(string FROM start_position for length)

SELECT SUBSTRING(column_name FROM 1 FOR 2) a, 
   SUBSTRING(column_name FROM 3 FOR 5) b, 
   SUBSTRING(column_name FROM 8 FOR 1) c, 
   SUBSTRING(column_name FROM 9 FOR 1) d, 
   SUBSTRING(column_name FROM 10 FOR 1) e, 
   SUBSTRING(column_name FROM 11 FOR 1) f 
from your_table name

如果您的子字符串中需要正则表达式,您可以:

INSERT INTO table_name(A,B,C,D,E,F)
VALUES (
    substring('bpApx14L103' from '^[a-z]{2}'), 
    substring('bpApx14L103', 3, 5) 
    [...]
);

当然同样适用于选择,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM