将regexp_substr语句转换为SQL Server等效语句

将regexp_substr语句转换为SQL Server等效语句,sql,sql-server,string,csv,tsql,Sql,Sql Server,String,Csv,Tsql,我不熟悉将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 2016或更高版本,则可以

我不熟悉将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 2016或更高版本,则可以为此使用
string\u split()
。假设
x
是存储
item
的表,您可以:

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

这似乎将分隔字符串拆分为多个部分。这可以类似于递归查询。但是首先检查您的SQL Server版本是否支持
STRING\u SPLIT
什么是
X
Y
?@GMB这两个版本都很抱歉。这是sored过程的一部分,但我只是对如何转换regexp\u substr感到困惑part@dnoeth是的