我想知道怎麼做取決於@FirstName
和@LastName
(價值一WHERE
語句中的IF
聲明,如果它是null
這裏是我的代碼:如何做一個搜索查詢
SELECT tblCustomers.CustomerFirstName, tblCustomers.CustomerLastName FROm tblCustomers
where CustomerFirstName = @FirstName and CustomerLastName = @LastName
我想知道怎麼做取決於@FirstName
和@LastName
(價值一WHERE
語句中的IF
聲明,如果它是null
這裏是我的代碼:如何做一個搜索查詢
SELECT tblCustomers.CustomerFirstName, tblCustomers.CustomerLastName FROm tblCustomers
where CustomerFirstName = @FirstName and CustomerLastName = @LastName
我以爲你是在尋找這樣的:
SELECT tblCustomers.CustomerFirstName, tblCustomers.CustomerLastName
FROM tblCustomers
WHERE CustomerFirstName = COALESCE(@FirstName, CustomerFirstName)
AND CustomerLastName = COALESCE(@LastName, CustomerLastName)
這樣,如果一個參數是空的where子句會忽略它
請ñ。注意它不會返回列爲空的任何行。
如果您的列可以爲空,並且您想要將它們爲空的行重新渲染,那麼您需要使用Bennjoe Mordeno的答案中的where子句。
SELECT tblCustomers.CustomerFirstName, tblCustomers.CustomerLastName FROm tblCustomers
where (CustomerFirstName = @FirstName OR @FirstName IS NULL) and (CustomerLastName = @LastName OR @LastName IS NULL)
如果該參數爲null,它沒有什麼需要做的,如果任何一個變量的值是空列
Use CASE Statement in WHERE Clause :
SELECT tblCustomers.CustomerFirstName, tblCustomers.CustomerLastName
FROM tblCustomers
WHERE CustomerFirstName = CASE
WHEN ISNULL(@FirstName,'') <> '' THEN @FirstName ELSE CustomerFirstName END AND CustomerLastName = WHEN ISNULL(@LastName,'') <> '' THEN @LastName ELSE CustomerLastName END
匹配嗎? – Shruti
如果參數爲空,它是否應該返回所有內容? –
更具體的你的情況 –