-1

我有一个包含布尔值的字段列,这个布尔值显示为 -1、0,或者,显然,0 表示空值。当我在 where 子句中使用这个值,测试它是否为假时,我得到了所有的假记录,这是我应该做的。我正在使用 3-state 复选框对此进行测试。如果我把它放在 NULL 上,那么我不会得到任何记录(字段中不允许使用 null)。但是,当我将其变为 true 时,我没有得到任何显示。

有任何想法吗?

编辑:

我正在使用的查询不是很有趣,它基本上只是: "SELECT *a lot* FROM *a lot* WHERE T0001_orders.t0001_active = " & me.chkbx.value 我相信我正在使用 SQLserver(?)并且我通过 ODBC 连接。这可能是不正确的,我并没有太在意那部分,这可能是我无法弄清楚的原因。

4

1 回答 1

1

您可能遇到 null 问题。当您使用 where something = NULL 时,它将在 msssql 服务器中不起作用。

你将不得不使用 where something is null

试试这 3 个语句,您可能会发现错误所在。

SELECT a lot FROM a lot WHERE T0001_orders.t0001_active is null
SELECT a lot FROM a lot WHERE T0001_orders.t0001_active =0
SELECT a lot FROM a lot WHERE T0001_orders.t0001_active =1

为 null 返回所有 NULL 值

field = 1 返回全部为真

field = 0 全部返回 false

于 2013-08-22T11:32:19.907 回答