这两种确定NULL的方法有什么不同

时间:2015-01-19 03:33:56

标签: sql sql-server tsql null

我有一些T-SQL代码会检查以确定字段是否为NULL。通常我只是对字段进行IS NULL检查,但是在这个代码中我已经给出了,使用的方法是 WHERE ISNULL(MyField, '') <> ''

这是一种更受欢迎的方法吗?比简单地说WHERE MyField IS NOT NULL

更好还是更坏

为你的帮助干杯

2 个答案:

答案 0 :(得分:5)

它考虑了空字段和空字符串的字段。在某些情况下,仅需要空字段。

答案 1 :(得分:1)

表达式:

WHERE MyField IS NOT NULL
如果合适,

将允许优化器使用索引(即使可用,它可能不是最佳解决方案)。字段上的函数通常会阻止使用索引。

表达式:

ISNULL(MyField, '') <> ''

COALESCE(MyField, '') <> ''

不仅会将''NULL混淆。但是,如果该字段是数字类型,则''将被解释为0,从而导致进一步的混淆。