考虑一下这种结构:
CREATE TABLE [tblEntityLogs]
(
[EntityLogId] [int] IDENTITY(1,1) NOT NULL,
[EntityCountCurrent] [float] NOT NULL,
...
)
当执行下面的查询时,我得到一个空行返回...
DECLARE @N FLOAT
SET @N = 666
SELECT ISNULL(tblEntityLogs.EntityCountCurrent, @N) AS EntityCountCurrent
FROM tblEntityLogs
如果我这样做:
SELECT tblEntityLogs.EntityCountCurrent FROM tblEntityLogs
同样的事情发生了。我甚至没有得到NULL
。
注意:表格为空。
答案 0 :(得分:5)
它没有失败,它没有返回任何行,因为没有行可以返回。如果有一行EntityCountCurrent
设置为NULL,那么你会得到NULL(由于该列被定义为NOT NULL,这种情况无法发生)。
答案 1 :(得分:4)
这是应该如何工作的。如果您在表格中有5行({1}},那么您将获得5行NULL
。
答案 2 :(得分:4)
如果桌子是空的,那么你将不会得到任何回报 - 这是设计的。
虽然,我不知道你为什么使用/测试它与IsNull,因为你的表结构不允许Null。