2011-11-07 185 views
0

如何在ORACLE中的查询中结合'LIKE'和'AND'运算符。如何在Oracle的SQL语句中结合'LIKE'和'AND'运算符

假设例如,我有测试表如下所示:

------------------------------------ 
col1 | Col2 
------------------------------------ 
A  | RED 
B  | RED,BLUE 
C  | BLUE,GREEN 
D  | YELLOW,RED 
------------------------------------ 

现在,如下图所示,将返回它们的任一个存在即“A,B的所有记录,如果我写的查询,光盘'。

[因为这里 '或' 经营者参与REGEXP_LIKE]

SELECT * FROM TEST WHERE REGEXP_LIKE(COL2,'ED|UE'); 

但我想AND运营商与LIKE使用。所以它应该只返回C,它们都应该存在。

如何写相同的查询?

+0

胡乱猜测(因为我从来没有使用甲骨文),但这样的:SELECT * FROM TEST WHERE REGEXP_LIKE(COL2, 'ED')和REGEXP_LIKE(COL2, 'UE') ;我猜你也可以摆脱RegEx,只需使用像 – JonAlb

+3

** C **不会匹配'ED | UE'。你错了吗?或者你的要求是什么? –

+0

@Ranhiru - C与'ED'相匹配,因为它匹配'UE'。它不会匹配OP所暗示的'ED'和'UE'。据推测,他确实是在记录B。 –

回答

4

你可以尝试:

SELECT * FROM test 
WHERE Col2 LIKE '%ED%' 
    AND Col2 LIKE '%UE%' 
相关问题