[英]SQL Case Statement: Set the default value for an Case
這次我需要對 SQL 的解釋。 我現在在互聯網上看到沒什么特別的,也許我有一個思維錯誤。
我有一個案例陳述,現在我想以不同的方式“過濾”它。 具體來說,我有一個問題,是否可以直接為行提供案例的“ELSE 值”,而無需自己編寫?
該示例使用單詞“Pflaume”,其中包含字母“e”,因此可以被“e”大小寫識別。 但我想將默認值“默認”分配給這種情況。
謝謝你,祝你有美好的一天
SELECT
ID_NR AS Names
, CASE
WHEN ROB_ARTIKEL.ID_NR = 'Pflaumen' THEN 'Bitte nicht'
WHEN ROB_ARTIKEL.ID_NR LIKE '%Z%' THEN 'Hat ein Z'
WHEN ROB_ARTIKEL.ID_NR LIKE '%e%' THEN 'Hat ein e'
WHEN ROB_ARTIKEL.ID_NR LIKE '%n%' THEN 'Hat ein n'
WHEN ROB_ARTIKEL.ID_NR LIKE '%w%'OR ROB_ARTIKEL.ID_NR LIKE '%K%' THEN 'Ist ne Kiwi'
ELSE 'default'
END AS BUCHSTABEN_CASE
FROM ROB_ARTIKEL
NAMES BUCHSTABEN_CASE
--------------------------------
1 Zitronen Hat ein Z
2 Gurken Hat ein e
3 Äpfel Hat ein e
4 Bananen Hat ein e
5 Birnen Hat ein e
6 Pflaumen Bitte nicht
7 Kirschen Hat ein e
8 Erdbeeren Hat ein e
9 Kiwi Ist ne Kiwi
由於案例是按順序測試的,因此您可以在LIKE '%e%'
案例之前檢查此案例。
CASE
WHEN ROB_ARTIKEL.ID_NR = 'Pflaumen' THEN 'Bitte nicht'
WHEN ROB_ARTIKEL.ID_NR LIKE '%Z%' THEN 'Hat ein Z'
WHEN ROB_ARTIKEL.ID_NR = 'Pflaume' THEN 'default'
WHEN ROB_ARTIKEL.ID_NR LIKE '%e%' THEN 'Hat ein e'
WHEN ROB_ARTIKEL.ID_NR LIKE '%n%' THEN 'Hat ein n'
WHEN ROB_ARTIKEL.ID_NR LIKE '%w%'OR ROB_ARTIKEL.ID_NR LIKE '%K%' THEN 'Ist ne Kiwi'
ELSE 'default'
一般來說,按照具體的順序排列你的案例——把例外放在第一位,然后是一般案例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.