簡體   English   中英

SQL Case 語句:設置 Case 的默認值

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

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