2016-09-15 72 views
0

我一個兩個表A和B. 的結果集被複制到目標表C.SQL - 空白值

對於交叉檢查之間的連接,我做基於所述公共列中的所有三個表之間的聯接。 爲匹配記錄,C.yyy = a.xxx應該是這種情況。這適用於非空值和空值。 但問題是空白字符串。當a.xxx爲空白時,c.yyy也應該是空白的。這在一個環境中很好。但是在另一個環境中,當a.xxx爲空時,c.yyy變爲null。

行爲在一個環境中發生變化。爲什麼?

注意:查詢在兩種環境中都是相同的。這兩個字段都是Varchar。

+0

你可以提供表創建腳本嗎? – x13

+1

歡迎來到Stack Overflow。您目前的問題並不真正負責,因爲您省略了關鍵信息,例如您所查詢的查詢和數據。請顯示查詢和數據。 –

回答

0

空白和空比較的結果取決於環境的ANSI NULL和ANSI填充設置。在比較包含空格或尾隨空格的varchar時,應該使用LIKE運算符,因爲它會考慮所有字符,而不考慮填充的長度。 查看https://support.microsoft.com/en-us/kb/316626瞭解更多信息。