簡體   English   中英

SQL WHERE CASE 子句中的表達式

[英]SQL WHERE Expression in CASE clause

我想從具有兩個字段namenullable_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.

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