SQL中如何拆分字段内带分隔符的字符串并提取元素作为新列
不同数据库提取section字段第二个元素的实现方案
以下操作默认你的表名为your_table,可根据实际情况替换:
- MySQL
先新增output1字段:
再拆分section字段赋值:ALTER TABLE your_table ADD COLUMN output1 VARCHAR(255);
说明:如果要过滤不足2个分段的记录,可以加UPDATE your_table SET output1 = SUBSTRING_INDEX(SUBSTRING_INDEX(section, '>', 2), '>', -1);WHERE section LIKE '%>%'条件。 - PostgreSQL
先新增output1字段:
再拆分赋值:ALTER TABLE your_table ADD COLUMN output1 VARCHAR(255);UPDATE your_table SET output1 = (string_to_array(section, '>'))[2]; - Oracle
先新增output1字段:
再拆分赋值:ALTER TABLE your_table ADD output1 VARCHAR2(255);UPDATE your_table SET output1 = REGEXP_SUBSTR(section, '[^>]+', 1, 2); - SQL Server 2016及以上版本
先新增output1字段:
再拆分赋值:ALTER TABLE your_table ADD output1 VARCHAR(255);UPDATE t SET output1 = s.value FROM your_table t CROSS APPLY ( SELECT value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn FROM STRING_SPLIT(t.section, '>') ) s WHERE s.rn = 2;
内容的提问来源于stack exchange,提问作者SNT
相关产品推荐
相关产品推荐

