sql-server - SQL Server 中的 REGEXP_SUBSTR 等效项

标签 sql-server oracle regexp-substr

我有一个 Oracle 查询,使用

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

它返回如下输出:

, Redwood Shores,

我试图在 SQL Server 中获得完全相同的结果。我尝试按如下方式进行

 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

下面是我得到的结果

enter image description here

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

关于sql-server - SQL Server 中的 REGEXP_SUBSTR 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424129/

相关文章:

oracle - PLS-00306 : wrong number or types of arguments in call to 'OUTPUT_ARRAY'

oracle - 将 "regexp_substr"(Oracle) 转换为 PostgreSQL

sql - 将 SQL 查询转化为函数

sql - 如何使用sql脚本更改列的属性

mysql - Unix时间戳转换在Mysql和Oracle中是不同的

sql - PLSQL 从字符串末尾开始显示数字

sql-server - 与 Azure SQL 数据库连接时,Azure 数据工厂中“超出锁定请求超时期限”

sql-server - Mocha 测试nodejs mssql - 连接已关闭

oracle - 如何将新添加的列的值添加到 Oracle 11g 中的所有现有行