拆分多列,具有不同分隔符的行

时间:2017-06-11 17:27:19

标签: sql sql-server

这是SQL表(UserTable)

    ROWNO|                CODE                        |CODEID
    -----+--------------------------------------------+-------------+
    1     ABD~Monthly~1~2~3~4~5!INDIA~Weekly~1~2~2~3~1  19
    2     CED~Weekly~1~3~3~4~5!SA~Weekly~4~2~2~3~5      20

代码列包含带有大量分隔符的复杂语句

分隔符〜表示列和!表示行

我必须像这样把它带回来

        CODE1| CODE2 |CODE3|CODE4|CODE5|CODE6|CODE7|CODEID
        -----+-------+-----+-----+-----+-----+-----+------+
        ABD   Monthly  1      2     3      4   5       19
        INDIA Weekly   1      2     2      3   1       19
        CED   Weekly   1      3     3      4   5       20
        SA    Weekly   4      2     2      3   5       20      

请有人帮助我来获取查询!

提前致谢,Jayendran

2 个答案:

答案 0 :(得分:2)

这是一种内联方法(没有udfs)

使用.chrisdavenport-middle24-text{ position: absolute; top: 290px; left: 0; right: 0; padding: 10px 200px; font-family: "Adelle PE"; line-height: 1.379; font-size: 16px; letter-spacing: 0.300em; text-align: center; border-style: solid; color: red; } .chrisdavenport-middle24-text:hover { font-weight: bold; font-style: italic; } 显示NULL值

示例

OUTER APPLY

<强>返回

enter image description here

<强> dbFiddle

答案 1 :(得分:0)

首先你应该考虑改变你的数据模型,但那是在另一篇论文中:)。

我不知道您正在使用哪个数据库,但您可以尝试使用XML方式。

您可以将这些答案结合起来:

用于创建行 https://stackoverflow.com/a/16083088/4132760

用于创建列 https://stackoverflow.com/a/15108499/4132760

如果您使用的是SQl 2016,则可以依赖新的分割功能 https://stackoverflow.com/a/36305493/4132760

如果您可以提供您的二手数据库系统,我相信有人可以为您提供完整的解决方案。