2010-08-24 99 views
0

考慮打鳥結構:簡單的SELECT查詢失敗

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

注意:表格爲空。

回答

4

如果表格是空的,那麼你不會得到任何回報 - 這是設計。

雖然,我不明白你爲什麼要用IsNull來測試它,因爲你的表結構不允許有空值。

+0

奇怪。是的,你是對的。在我感到沮喪的時候,我在那裏扔了一個隨機的'ISNULL()':)謝謝 – roosteronacid 2010-08-24 08:44:44

4

這是它應該如何工作。如果你有5行在表中都是NULL,那麼你會得到五個666

5

這不是失敗,它沒有返回行,因爲沒有行要返回。如果有一行EntityCountCurrent設置爲NULL(這不可能發生,因爲該列被定義爲NOT NULL),您將返回NULL。