【问题标题】:Convert regexp_substr statement to SQL Server equivalent将 regexp_substr 语句转换为 SQL Server 等效语句
【发布时间】:2021-01-08 09:40:07
【问题描述】:

我不熟悉将 oracle sql 语句转换为 t-sql。你能帮我转换一下下面的语句吗?

select regexp_substr(TO_CHAR(X.ITEM), '[^|]+', 1, level) CONCAT
from dual
connect by regexp_substr(TO_CHAR(X.ITEM), '[^|]+', 1, level) is not null

【问题讨论】:

  • 这似乎将分隔字符串拆分为多个部分。这可以通过递归查询类似地完成。但首先检查你的 SQL Server 版本是否支持STRING_SPLIT
  • XY 是什么?
  • @GMB 这两个都对不起。这是一个痛苦的过程的一部分,但我只是对如何转换那个 regexp_substr 部分感到困惑
  • @dnoeth 是的

标签: sql sql-server string csv tsql


【解决方案1】:

您似乎想将分隔列表拆分为行,使用字符 | 作为分隔符。

如果您运行的是 SQL Server 2016 或更高版本,则可以为此使用 string_split()。假设x 是存储item 的表,你会去:

select x.*, value
from x
cross apply string_split(item, '|')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 2011-10-18
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多