我希望获得具有其他值且为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
但它没有显示任何内容。
答案 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 value,UNKNOWN
,而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'