2

我有一个 Oracle 查询使用

SELECT REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA',',[^,]+,') 
FROM DUAL;

它返回如下输出:

, Redwood Shores,

我试图在 SQL Server 中获得完全相同的结果。我试着做如下

 substring(text, patindex, length)

但我在长度规格方面遇到了困难。

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

4

2 回答 2

2

您可以尝试以下查询

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 clause仅用于数据准备。只需使用中的substring部分select statement

于 2017-01-02T09:44:25.627 回答
1

尝试这个:

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)))))
于 2017-01-02T10:10:20.433 回答