當您在 SQL 編輯器中輸入查詢 或建立計算 時,您會使用Presto SQL 語法 。若要根據是否符合特定條件來回傳值,您可能會發現這些常見的表達式很有用。
CASE
若要評估條件清單,並根據第一個匹配或真條件返回值,請使用CASE 表達式,例如啟用 if/else 邏輯。 CASE 有兩種格式:
- 在其簡單 形式中,
CASE會針對特定的表達式評估清單,並傳回其值,例如:
CASE expression WHEN value THEN result [ WHEN ... ] [ ELSE result ] END
- 在其搜索 的形式中,
CASE會評估一個布林值清單,並返回第一個TRUE條件的值,例如:
CASE WHEN condition THEN result [ WHEN ... ] [ ELSE result ] END
例如,根據匹配表達式返回值(「一 」或 「二」)的簡單形式:
SELECT expression, CASE expression WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'many' END
如果沒有條件為真,CASE 會返回ELSE 子句的值(本例中為 "many"),如果沒有ELSE 子句,則返回NULL 。
注意: 要根據單一條件是否為真來返回值,請使用IF 語句。
COALESCE
若要返回清單中第一個非空值,請使用COALESCE 表達式,如 COALESCE(value1,value2,value3)。
IF
若要依據條件是否為真或假來回傳值,請使用IF 語句作為 IF(condition,true_value,false_value)。
注意: 如果條件為 false 且未指定false_value ,IF 語句會返回NULL 。
「空值」(Is Null) 或「非空值」(Is Not Null)
要檢測值是否為空或NULL ,請使用IS NULL 或IS NOT NULL 運算符號:
- 要測試空值,請使用
IS NULL。 - 要測試非空值,請使用
IS NOT NULL。
例如,測試沒有地址的客戶資料:
SELECT Customer_Name, Contact_Name, Address
FROM Customers
WHERE Address IS NULL
新土耳其里拉
要在表達式因損毀或無效資料而失敗時返回NULL ,請使用TRY 表達式作為 TRY(表達式)。TRY 處理這些錯誤:
- 除以零
- 無效
CAST或函數參數 - 數值超出範圍