【问题标题】:Regex_like - Passing comparison string as a query - OracleRegex_like - 将比较字符串作为查询传递 - Oracle
【发布时间】:2013-05-29 09:48:43
【问题描述】:

我有下表:

SrNo   Name
------------
 1     TOM
 2     JOHN
 3     HENRY

运行以下查询:

SELECT * FROM MYTABLE WHERE regexp_LIKE (NAME, '^(TO|HEN)')

给出输出:

SrNo   Name
------------
 1     TOM    
 3     HENRY

如果我运行查询:

SELECT * FROM MYTABLE WHERE REGEXP_LIKE (NAME, SELECT '^(' || 'TO' || '|' || 'HE' || ')' FROM DUAL )

我得到了错误

ORA-00936: missing expression

我怎样才能正确传递查询以使这个 REGEXP_LIKE 起作用?

谢谢, 莫妮卡

【问题讨论】:

    标签: oracle plsql oracle11g plsqldeveloper


    【解决方案1】:

    您只需要用括号将子查询括起来就可以了。以下查询应该有效:

    SELECT * 
    FROM MYTABLE 
    WHERE REGEXP_LIKE (NAME, (
      SELECT '^(' || 'TO' || '|' || 'HE' || ')' FROM DUAL
    ) );
    

    这里有一个 SQLFiddle:http://sqlfiddle.com/#!4/072da/3

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 2022-06-16
      相关资源
      最近更新 更多