我有下表:
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正常工作?
谢谢, 莫妮卡
答案 0 :(得分:3)
您只需要使用括号括起子查询以使其正常工作。以下查询应该有效:
SELECT *
FROM MYTABLE
WHERE REGEXP_LIKE (NAME, (
SELECT '^(' || 'TO' || '|' || 'HE' || ')' FROM DUAL
) );
这里有一个SQLFiddle:http://sqlfiddle.com/#!4/072da/3