尋找使用此條件接受NULL和BLANK值的最有效方法。SQL like子句(空值和空值)
and region.Description like isnull(@Region, N'') + N'%'
該查詢適用於NULLS,但是對於EMTPY值它不起作用。任何想法來調整這兩個執行?
尋找使用此條件接受NULL和BLANK值的最有效方法。SQL like子句(空值和空值)
and region.Description like isnull(@Region, N'') + N'%'
該查詢適用於NULLS,但是對於EMTPY值它不起作用。任何想法來調整這兩個執行?
我不完全確定你正在嘗試做什麼,或者你正在使用哪個數據庫。但根據這些問題的答案,我猜測COALESCE可能比ISNULL更適合你。
感謝。 SQL Server 2008.如果COALESCE是更好的選擇 - 希望瞭解如何將它分解到查詢中。我是否簡單地更換ISNULL –
您可以,但經過反思,我認爲在這種情況下,COALESCE將提供相同的結果。它可能是空白或空白的是什麼? Region.Description還是@Region? –
就我個人而言,我發現明確地檢查NULL,而不是用COALESCE()或ISNULL()做任何聰明的技巧。然後通過在修剪任何空格之後檢查字符串的長度來包含空格。
(region.Description LIKE @Region + '%' OR @Region IS NULL OR LEN(LTRIM(RTRIM(@Region)))=0)
這工作完美。當我將參數值從一個SSRS報告傳遞給另一個時,此代碼將幫助我將空白值作爲「值」傳遞,而不是null,這會拋出鑽取。謝謝 –
AND( (isnull(@Region, N'')='' AND isnull(region.Description,'')='')
OR(isnull(@Region, N'')<>'' AND region.Description like @Region + N'%'))
SQL Server 2008中 –
嘗試ISNULL(NULLIF(@region, ''),N) – prats1411