[英]SQL WHERE Expression in CASE clause
我想從具有兩個字段name
和nullable_name
的表Item
中獲取數據,第二個可以為空。
現在我想添加一個過濾器字符串,以便只獲取包含該字符串的結果(如果nullable_name
為 null,則在name
字段中,如果存在,則在nullable_name
字段中)。 所以我希望根據情況發生兩個 WHERE 表達式之一。
我嘗試過但沒有用的方法:
SELECT * FROM Item
WHERE
CASE
WHEN Item.nullable_name IS NULL THEN (Item.name LIKE '%filter%')
ELSE (Item.nullable_name LIKE '%filter%')
END
你似乎想要coalesce()
:
where coalesce(item.nullable_name, item.name) like '%filter%'
coalesce()
是一個 function,它返回第一個非NULL
值。
試試 Where isnull(item.nullable_name, item.name) like '%filter%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.