4

我希望以下代码向我显示表中交换列为空但结果集显示 0 行的所有记录。知道为什么吗?

SELECT * FROM pubco WHERE exchange IS NULL;
4

4 回答 4

5

也许你已经解释''NULL不一样了,但试试这个

SELECT * 
FROM pubco 
WHERE exchange IS NULL OR
      exchange = ''

但如果仍然没有得到价值,也许它上面有空格,所以你应该TRIM这样做,

SELECT * 
FROM pubco 
WHERE exchange IS NULL OR
      TRIM(exchange) = ''
于 2013-01-11T14:16:14.843 回答
0

一个重要的说明:NULL''(即空字符串)不是一回事,很可能您的列包含空字符串,因此您需要放置另一个条件:

SELECT * FROM pubco WHERE (exchange IS NULL OR exchange = '');
于 2013-01-11T14:17:28.600 回答
0

你确定它们是空的吗?

也许他们有一个不一样的字符串值“NULL”,如果你这样做,它会返回什么:

SELECT * FROM pubco WHERE exchange == "NULL";
于 2013-01-11T14:17:36.597 回答
0

而不是使用这个查询

SELECT * 
FROM pubco 
WHERE exchange IS NULL OR
      exchange = ''

试试这个

SELECT * FROM pubco 
WHERE isnull(exchange,'')='';

它会提高你的表现

于 2013-01-11T14:24:14.997 回答