Sql select where子句操作<>

时间:2014-11-07 11:54:13

标签: sql sql-server

我希望获得具有其他值且为null的列值但不希望值等于某个点。

示例

ID|VID  |IC  |
1 |v001 |123 |
2 |v001 |null|
3 |v003 |456 |
4 |v004 |null|

所以我想得到哪个IC不等于123的ID。但我只得到ID 3但是ID 2和4不会在sql中显示出来。我试过了select * from table where IC<>'123' and IC is null但它没有显示任何内容。

4 个答案:

答案 0 :(得分:0)

SELECT * FROM table WHERE IC != '123' OR IC IS NULL

答案 1 :(得分:0)

您需要OR,而不是AND

select * from table where IC != 123 OR IC IS NULL

NULL的任何比较都会产生third logic valueUNKNOWN,而UNKNOWN的任何否定都会产生UNKNOWN,因此您必须处理{{1}分开 - 但是,当然,对于任何特定的行,它不可能同时获得与NULL不同的值,但同时它的{{1} }}。所以123是错误的。

答案 2 :(得分:0)

尝试以下方法:

SELECT *  
FROM table   
WHERE IC != '123'   
OR IC IS NULL  

答案 3 :(得分:0)

试试这个:

select * from table where ISNULL(IC,0)<>'123'    
相关问题