SQL不喜欢的语句不工作(SQL Not Like Statement not working)

2019-09-02 00:19发布

我有一个存储过程中的以下代码。

WHERE
    WPP.ACCEPTED = 1 AND
    WPI.EMAIL LIKE '%@MATH.UCLA.EDU%' AND
    (WPP.SPEAKER = 0 OR
    WPP.SPEAKER IS NULL) AND
    WPP.COMMENT NOT LIKE '%CORE%' AND
    WPP.PROGRAMCODE = 'cmaws3'

那么NOT LIKE语句不工作了,是以前任何人说任何事有与注释列的项目,不包括内核及所有其他列都OK。

有谁知道什么是错的呢?

Answer 1:

如果WPP.COMMENT包含NULL ,则条件不匹配。

这个查询:

SELECT  1
WHERE   NULL NOT LIKE '%test%'

将返回什么。

在一个NULL列,既LIKENOT LIKE对任何搜索字符串将返回NULL

你能请张贴这在你看来应该返回行的相关值,但它是不是?



Answer 2:

是您特别的评论列空的价值?

有时候不喜欢不知道如何正确行事周围空。



Answer 3:

我只是碰到了同样的问题来了,解决了这个问题,但在此之前,我发现这个职位。 而看到你的问题并没有真正回答,这里是我的解决方案(这将有望为你工作,或其他任何人寻找我做同样的事情;

代替;

... AND WPP.COMMENT NOT LIKE '%CORE%' ...

尝试;

... AND NOT WPP.COMMENT LIKE '%CORE%' ...

基本上移动“NOT”其他的我被评估为我工作的场上。



Answer 4:

只是碰到过这样的,答案很简单,使用ISNULL 。 如果您正在测试的字段没​​有值(在一些记录)做一个比较的文本搜索,例如,当SQL将不会返回行:

WHERE wpp.comment NOT LIKE '%CORE%'

所以,你已经暂时替代值null使用(空)记录ISNULL命令,如

WHERE (ISNULL(wpp.comment,'')) NOT LIKE '%CORE%'

于是,这将显示你所有的记录有空白和遗漏任何有你的匹配条件。 如果你愿意,你可以放在逗号的东西来帮助你记住,如

WHERE (ISNULL(wpp.comment,'some_records_have_no_value')) NOT LIKE '%CORE%'


Answer 5:

mattgcon,

要上班,如果您运行注释掉“NOT LIKE”行相同的SQL你得到更多的行? 如果没有,检查数据。 我知道你在你的问题中提到,但检查实际的SQL语句的使用条款。 其他答案用NULL也是一个好主意。



文章来源: SQL Not Like Statement not working