[英]CASE statement in WHERE clause
我有一個在WHERE
子句中寫入以下條件的過程。 我該如何使用CASE
或類似的東西呢?
IF (@itemId IS NOT NULL)
dataId = @itemid
您不需要這樣的情況:
... where @itemId is null or dataId = @itemId ...
要么:
... where isnull(@itemId, dataId) = dataId ...
Case When @ItemId Is Not Null And dataId = itemId Then 1 Else 0 End = 0
如果dataId不可為空,則可以將其簡化為:
dataId = Coalesce(@ItemId, dataId)
或使用Case表達式
dataId = Case When @ItemId Is Null Then itemId Else dataId End
您可以執行以下操作:
SELECT dataId = CASE WHEN @itemId IS NOT NULL THEN @itemId
ELSE dataId END
FROM YourTable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.