1

我有一张桌子,例如

Merchant(
    id (PK,char(15),not null),
    name (varchar(22),null),
    city(varchar(10),null),
    location(varchar(10),null),
    state_code(int,null),
    country_code(int,null)
)

在哪里city总是NULLname也是NULL

有人将这些字段更新为字符串 "NULL"

我怎样才能找到不同之处?

4

3 回答 3

2

您可以像这样修复有问题的行:

UPDATE Merchant
SET city = NULL
WHERE city = 'NULL';

UPDATE Merchant
SET name = NULL
WHERE name = 'NULL';

要简单地查找带有字符串 "NULL"的行:

SELECT * FROM Merchant
WHERE city = 'NULL'
OR name = 'NULL';

或找到实数NULL

SELECT * FROM Merchant
WHERE city = NULL
OR name = NULL;

请注意所有这些示例:NULL,然后有'NULL'

于 2013-06-27T11:05:34.433 回答
1

你可以尝试类似的东西

SELECT *
FROM Merchant 
WHERE city = 'NULL'
OR name = 'NULL'

这应该返回列城市或列名设置为字符串 NULL 的所有行。

SELECT *
FROM Merchant 
WHERE city IS NULL
OR name IS NULL

将返回列城市或列名称为NULL的所有行

于 2013-06-27T11:05:32.163 回答
0
  • NULL 表示未设置
  • 空字符串是没有符号的字符串

使用数字更简单,例如支付金额(账单): - 支付金额为 0(您无需支付任何费用)[ amount = 0] - 金额可以为 100.-(您必须支付 100.-) [ amount = 100] - 或者金额可以为 NULL,表示金额尚未设置(尚未)[ amount is null]

对于给定的情况,括号中的语句将返回 true。

所以你看,0(没有钱支付)或 NULL(未设置)的数量是不一样的。你的字符串也一样。它尚未设置或为空字符串。

我希望它可以帮助你...... ;-)

于 2013-06-27T11:10:59.043 回答