讓我們想象有一個表Product
與列ProductId
(smallint),Title
(可nvarlable nvarchar(100))和Price
(貨幣)。標題可以是是null
。如何在參數化查詢中檢查T-SQL中的值是否爲空?
有它必須返回和產品匹配到一個特定的標題和具體價格查詢:
using (SqlCommand getProducts = new SqlCommand("select ProductId from Product where Title = @title and Price = @price", sqlConnection))
{
getProducts.Parameters.AddWithValue("@title", title);
getProducts.Parameters.AddWithValue("@price", price);
}
當title
集執行以下代碼爲空(或者也可能爲空字符串),用於SQL Server中,比較將是:
[...] where Title = NULL and Price = 123
它會返回一個空集,因爲正確的語法是:
[...] where Title is NULL and Price = 123
我可以根據標題的空檢查更改查詢字符串,但它將不可維護。
當Title
爲空時,是否有一種乾淨的方式可以在不使查詢字符串不同的情況下進行比較工作?
在`@ title`爲null的情況下,如果`Title`s爲null,那麼是不是仍然會轉換爲`''= NULL`? – 2011-02-10 17:00:51