2014-02-20 22 views
0

我知道有很多答案,我如何檢查列/行單元格是空的還是NULL,儘管它們似乎給出了正確的方法來做到這一點我只能讓它在我的本地服務器上工作,而不是我的現場服務器,所以想知道有沒有人可以幫忙。WHAT datatable.column =''不在實時SQL服務器上工作

問題:

編輯:.cancelled =「」的代碼片段的一部分工作在我的本地PC罰款,但不會現場服務器上運行。注意,date從工作正常,沒有AND .... .cancelled =''部分。

WHERE (ReservationDetailsTable.dateFrom = '" + chosenDatefrom + "') AND (ReservationDetailsTable.cancelled = '') 

使用

ReservationDetailsTable.cancelled IS NULL 

ReservationDetailsTable.cancelled LIKE '' 

DATALENGTH(ReservationDetailsTable.cancelled) = 0 

沒有工作,對服務器版本也試過。只要取消的列在其中沒有數據,那麼它就被選中。

我檢查了列/行單元格中的內容,以及所有其他數據與SQL語句匹配,我檢查了列名稱的拼寫等。它工作並通過單元格中的數據過濾,如果我將一個字符串在'和'之內,但如果我不這樣做,則不會。

它是可能的,即使我可以把數據放入數據表然後刪除它不是null或實際上是空的?

我不是SQL服務器專家我只能寫SQL命令語句。

歡呼聲的任何幫助。

EDITTED作爲不能添加評論..

取消數據=兩者都是數據格式NVARCHAR(23)。它是存儲一個字符串。已經嘗試了兩種日期格式03/12/14和12/03/14。感謝所有迄今。

+0

如果它在一個sql服務器實例上工作,並且不能在另一個實例上工作,那麼您可能需要查看「數據」而不是查詢。 –

+0

'ReservationDetailsTable.cancelled'的數據類型是什麼?你打電話給查詢怎麼樣? – GarethD

+1

如果我不得不猜測,問題是在條件的其他部分。如果你刪除'cancelled'條件是什麼返回?我懷疑這兩臺服務器上的默認日期格式不同,這會阻止第一種情況下的匹配。 –

回答

0

我不明白一點點,我想cancelled字段有一個數據類型爲DATE或DATETIME,所以你爲什麼要把你的條件與''?

但是,如果對你來說那個條件沒問題,你試過了嗎?

WHERE (ReservationDetailsTable.dateFrom = '" + chosenDatefrom + "') 
AND (ReservationDetailsTable.cancelled is null OR ReservationDetailsTable.cancelled = '') 
相關問題