2013-05-08 41 views
0

我最近增加了一個Deleted列到我的表,然後想添加額外的where子句,但現在我沒有得到任何結果了(它返回的結果之前,我添加了deleted列)增加了新的領域,以表和存儲過程,現在程序返回任何結果

SELECT 
    tblEquipment.*, tblUsers.* 
FROM 
    tblEquipment 
INNER JOIN 
    tblUsers ON tblEquipment.UserID = tblUsers.ID 
WHERE 
    (UPPER(tblUsers.Dept) = 'ASPIRE' OR UPPER(tblUsers.Dept) = 'DEVELOPMENT') 
    AND (AssetType = 'WORKSTATION' OR AssetType = 'LAPTOP') 
    AND (tblEquipment.Deleted != 1) 
ORDER BY 
    Username 

感謝您的幫助

+0

微軟SQLSERVER 2008快遞,我得到我的結果,直到我加入刪除不等於1部分,當前刪除在所有記錄爲空 – AlexW 2013-05-08 16:28:47

回答

2

如果DeletedNULL對每條記錄,你的情況應該是:

AND (tblEquipment.Deleted != 1 OR tblEquipment.Deleted IS NULL) 
1

我假設你沒有填充了新列,所以每個記錄都有空,因爲價值。根據RDMS評估NULL的方式,

tblEquipment.Deleted != 1 

可能是罪魁禍首。

UPDATE:

以下應該解決您的問題:

ISNULL(tblEquipment.Deleted,0) != 1 
+0

我該如何改變這個,所以它會顯示t他記錄爲零,而不是1? – AlexW 2013-05-08 16:32:14

+0

更新了我的答案以解決您的問題。 – 2013-05-08 16:34:09

+1

我會建議不要在此處使用'ISNULL',因爲它將使該列不可能 – Lamak 2013-05-08 16:34:18