将regexp_substr语句转换为SQL Server等效语句
我不熟悉将oracle sql语句转换为t-sql。你能帮我转换一下下面的语句吗将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或更高版本,则可以
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是的