【问题标题】:String_Split Order SolutionString_Split Order 解决方案
【发布时间】:2020-10-09 08:54:03
【问题描述】:

情况:

我有一列从一个平面文件导入到 SQL Server,现在该列有一个大文本字符串值[没有其他列有这么大的字符串]。所以我需要做的是String_Split 列并插入多行。但是,分隔符值是不同的文档文件路径,在路径末尾指示了不同的版本。

Split_String 查询

select value as [New DOS file], [DOS file]
from [Document Dataset]
cross apply string_split([DOS file], '|')

问题:

当您执行Split_String 查询时,[New DOS file] 值列会自动按字母顺序排列。但是,我需要添加一个Row_Num,按[DOS file] 分组,但按版本号排序,该版本号位于[New DOS file] 的字符串末尾附近。

excel中显示的示例数据:

Data Sample 1

我希望数据在 excel 中显示的样子:

Data Sample 2

请求:

是否可以将特定语法添加到我的 String_Split 查询中以实现我想要的结果?

【问题讨论】:

    标签: sql-server split dataset sql-order-by


    【解决方案1】:

    所以我刚刚发布了以下问题,以防有人有类似的情况,因为我找到了它的答案。

    解决方案:

    select value as [New DOS file], [DOS file], A.B as Row_Num
    from [Document Dataset]
    cross apply (
        select value, row_number() over(order by current_timestamp) as B
        from string_split([DOS file], '|')
    ) A
    order by value
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2012-03-31
      • 2013-07-22
      • 2016-11-01
      相关资源
      最近更新 更多