简单的SELECT查询失败

时间:2010-08-24 08:37:36

标签: sql-server-2005

考虑一下这种结构:

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

注意:表格为空。

3 个答案:

答案 0 :(得分:5)

它没有失败,它没有返回任何行,因为没有行可以返回。如果有一行EntityCountCurrent设置为NULL,那么你会得到NULL(由于该列被定义为NOT NULL,这种情况无法发生)。

答案 1 :(得分:4)

这是应该如何工作的。如果您在表格中有5行({1}},那么您将获得5行NULL

答案 2 :(得分:4)

如果桌子是空的,那么你将不会得到任何回报 - 这是设计的。

虽然,我不知道你为什么使用/测试它与IsNull,因为你的表结构不允许Null。