0

我有下表:

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 正常工作?

谢谢,莫妮卡

4

1 回答 1

3

您只需要用括号将子查询括起来即可使其正常工作。以下查询应该有效:

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

SQLFiddle 可在此处获得:http ://sqlfiddle.com/#!4/072da/3

于 2013-05-29T01:48:43.967 回答