开发者社区> 问答> 正文

字符串拆分字符串具有多列相同的分隔符

我有以下字符串

'06/30/2020;58044.373;.001;12/31/2020;58042.373;.003;06/30/2021;78044.373;.007'
我需要将其转换为:

col 1       col 2         col 3
----        -----         -----
06/30/2020  58044.373     .001
12/31/2020  58042.373     .003
06/30/2021  78044.373     .007

我只能使用statmets,不能使用游标或SP。

有什么帮助吗?

展开
收起
祖安文状元 2020-01-04 15:41:52 437 0
1 条回答
写回答
取消 提交回答
  • 解决方法STRING_SPLIT(不安全):

    WITH cte AS (
      SELECT c, value,
          ROW_NUMBER() OVER(ORDER BY (SELECT 1)) % 3 AS rn,
          (ROW_NUMBER() OVER(ORDER BY (SELECT 1))-1) / 3 AS grp
      FROM t
      CROSS APPLY STRING_SPLIT(c, ';')
    )
    SELECT MAX(CASE WHEN rn = 1 THEN value END) AS col1,
           MAX(CASE WHEN rn = 2 THEN value END) AS col2,
           MAX(CASE WHEN rn = 0 THEN value END) AS col3
    FROM cte
    GROUP BY c,grp;
    
    2020-01-04 15:42:02
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载