尝试选择BAD_PRD不等于'坏' 但是当我没有" BAD_PRD!=' bad'" 或者当使用" BAD_PRD为空时" 它给出了结果,不确定我是否可以使用!= here:
select * FROM cte c WHERE rn = 1 and [BAD_PRD] != 'bad'
感谢, 小号
答案 0 :(得分:0)
您可以为类似Select语句的模式应用like运算符
select * FROM cte c WHERE rn = 1 and [BAD_PRD] NOT LIKE 'bad%'
评论后编辑:假设[BAD_PRD]列有空值。
select * FROM cte c WHERE rn = 1 and ([BAD_PRD] NOT LIKE 'bad%' OR [BAD_PRD] is null)
答案 1 :(得分:0)
试试这个:
where not (BAD_PRD= 'bad')
或
select * FROM cte c WHERE rn = 1 and BAD_PRD not like 'bad'
如果使用Collate
,如何使查询区分大小写并从上面的查询中仅检索不等于('bad')的记录,则需要更改查询的排序规则,如下所示:
select * FROM cte c WHERE rn = 1 and BAD_PRD != 'bad' COLLATE Latin1_General_CS_AS
或
select * FROM cte c WHERE rn = 1 and [BAD_PRD] COLLATE Latin1_General_CS_AS != 'bad'
答案 2 :(得分:0)
你是对的,你不能使用!=这里。 但是你至少有两种选择。 第一个是你确实“坏”的地方。 BAD_PRD列中的值。
SELECT *
FROM tblSomeTable
WHERE (rn = 1) AND (BAD_PRD <> 'bad' OR BAD_PRD IS NULL)
但是现在,如果你没有完全错误的话,该怎么办呢?价值,但像“糟糕的天气”这样的东西。或者&#39; badd&#39;或者&#39; amrashbadda&#39;。 对于那些你可以尝试使用所谓的通配符工作的LIKE命令,在这种情况下&#39;%&#39;。
SELECT *
FROM tblSomeTable
WHERE (rn = 1) AND (BAD_PRD NOT LIKE '%bad%' OR BAD_PRD IS NULL)
我所说的&#39;%bla%&#39;就是它会在“坏”之前和之后找到零个或多个字符。串。如果您有兴趣,可以阅读LIKE here上的更多内容。
如果你仍有问题,我会尝试用更简单的查询结账,看看我能得到什么。这是一些。
SELECT *
FROM tblSomeTable
WHERE rn = 1;
这个用于检查LIKE甚至可以在您的列上工作。如果它显示空结果集,那么您可以检查该列更近,因为它可能不包含“坏”#。
SELECT *
FROM tblSomeTable
WHERE BAD_PRD NOT LIKE '%bad%';
答案 3 :(得分:0)
请试试这个 select * FROM cte c WHERE rn = 1 and [BAD_PRD]&lt;&gt; &#39;坏&#39; 您将获得所有数据,其值等于1和[BAD_PRD]值,除了包含“坏”&#39;