【发布时间】:2016-04-10 12:01:59
【问题描述】:
在使用 ISNULL 时,我遇到了一些奇怪的数据类型转换行为。看看这个:
PRINT CASE WHEN ISNULL('', 0) = 0 THEN 'true' ELSE 'false' END
PRINT CASE WHEN ISNULL('', 0) = '' THEN 'true' ELSE 'false' END
PRINT CASE WHEN ISNULL(NULL, 0) = '' THEN 'true' ELSE 'false' END
所有这些表达式都为真。 但是当我声明一个 nvarchar 变量并将其设置为 NULL 时,会发生以下情况:
DECLARE @charType nvarchar; SET @charType = NULL;
PRINT CASE WHEN ISNULL(@charType, 0) = '' THEN 'true' ELSE 'false' END
这也应该评估为 true,但它评估为 false。为什么?
【问题讨论】:
标签: sql-server tsql type-conversion isnull