0

我正在尝试在存储过程中创建对多个文本字符串的单个搜索。以下代码适用于 test1,但是当我同时尝试 test1 和 test2 时,我没有得到任何结果;也没有错误。

test2 的行现在被注释掉了。

SELECT name, line, text 
FROM   user_source
WHERE  type = 'PROCEDURE' 
AND    UPPER(text) LIKE UPPER('%test1%')
-- AND TEXT LIKE UPPER('%test2%') 
ORDER BY NAME;

我做错了什么?

4

3 回答 3

1

使用OR,因为如果您使用 an AND,则只有在找到两个字符串时才会出现积极的情况。也许你也想念上(文字)

SELECT name, line, text 
FROM   user_source
WHERE  type = 'PROCEDURE' 
AND UPPER(text) LIKE UPPER('%test1%')
OR  upper(TEXT) LIKE UPPER('%test2%') 
于 2013-05-31T20:59:39.913 回答
1

也许没有一行同时包含“text1”和“text2”字符串。在这种情况下,您将不得不使用 OR。

SELECT NAME, LINE, TEXT 
FROM   USER_SOURCE
WHERE  TYPE = 'PROCEDURE' 
AND (UPPER(TEXT) LIKE UPPER('%TEST1%')
  OR UPPER(TEXT) LIKE UPPER('%TEST2%'))       
于 2013-05-31T21:01:23.700 回答
0

您在最后一行缺少 UPPER(TEXT) 。应该:

SELECT name, line, text 
FROM   user_source
WHERE  type = 'PROCEDURE' 
AND UPPER(text) LIKE UPPER('%test1%')
AND UPPER(TEXT) LIKE UPPER('%test2%') 
于 2013-05-31T20:34:26.490 回答