簡體   English   中英

WHERE子句中的CASE語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM