Sql server SQL Server中的REGEXP_SUBSTR等效项
我有一个Oracle查询,使用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
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员工来开发它!