我想比較WHERE
子句中的列col1
和變量@myvar
。兩者通常都包含GUID,但也可能具有NULL值。 我想我可以通過使用WHERE ISNULL(col1, '')=ISNULL(@myvar, '')
解決NULL=NULL
評估爲FALSE這一事實。這會比較兩個空字符串,並將其評估爲TRUE。SQL Server:唯一標識符上的ISNULL
這將然而,產生以下錯誤消息:
消息8169,級別16,狀態2,行3轉換從字符串轉換爲uniqueidentifier 時失敗。
我試圖
DECLARE @myvar uniqueidentifier = NULL
SELECT ISNULL(@myvar,'') as col1
同樣的錯誤消息。我試圖將一個uniqueidentifier變量 - 即使它有一個NULL值 - 轉換爲(空!)字符串,而不是其他方式,如錯誤消息所示。是什麼賦予了?
其次,有沒有更好的方法來說出我需要的WHERE子句,以便比較可能爲NULL的uniqueidentifiers?
一些東西你要您的有效uniqueidentifiers也將轉換爲字符串? – shawnt00
shawnt00,對於WHERE子句,非NULL uniqueidentifiers不需要轉換爲字符串。比較它們只需要評估爲TRUE,因此我只在相同位置檢索記錄。 – TVogt