Sql server SQL Server中的REGEXP_SUBSTR等效项

Sql server SQL Server中的REGEXP_SUBSTR等效项,sql-server,oracle,regexp-substr,Sql Server,Oracle,Regexp Substr,我有一个Oracle查询,使用 SELECT REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA',',[^,]+,') FROM DUAL; 它返回如下输出: , Redwood Shores, 我试图在SQLServer中得到完全相同的结果。我试着按照下面的方法做 substring(text, patindex, length) 但我很难确定长度 您能告诉我如何在SQL Server中实现这一点吗?您可以尝试下面的查询 WI

我有一个Oracle查询,使用

SELECT REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA',',[^,]+,') 
FROM DUAL;
它返回如下输出:

, Redwood Shores,
我试图在SQLServer中得到完全相同的结果。我试着按照下面的方法做

 substring(text, patindex, length)
但我很难确定长度


您能告诉我如何在SQL Server中实现这一点吗?

您可以尝试下面的查询

WITH dual AS
(
 SELECT '500 Oracle Parkway, Redwood Shores, CA' AS st
)
SELECT SUBSTRING(REVERSE(SUBSTRING(REVERSE(st),
                                   CHARINDEX(',', REVERSE(st)),
                                   LEN(st))),
                 CHARINDEX(',', st),
                 LEN(st)) str_value
  FROM dual
下面是我得到的结果

注意:
with子句
仅用于数据准备。只需使用
select语句中的
子字符串
部分

试试以下方法:

Declare @test varchar(max)='500 Oracle Parkway, Redwood Shores, CA'
select reverse(substring(reverse(substring(@test,charindex(',',@test),len(@test))),
        charindex(',',reverse(substring(@test,charindex(',',@test),len(@test)))),
        len(substring(@test,charindex(',',@test),len(@test)))))

SQL Server没有正则表达式。您可以使用表值函数拆分字符串并返回其部分,因为单独的行si正在查找相同的内容。也没有看到任何与之等价的东西!我们应该建议Micro soft员工来开发它!