sql case when end as

CASE 多是 SQL 中被誤用最多的關鍵字之一。雖然你可能之前用過這個關鍵字來建立字段,可是它還具備更多用法。例如,你能夠在 WHERE 子句中使用 CASE。 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑首先讓咱們看一下 
CASE 的語法。在通常的 SELECT 中,其語法以下: 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
SELECT 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
CASE 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
WHEN <A> THEN <somethingA> 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
WHEN <B> THEN <somethingB> 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
ELSE <somethingE> 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
END as <myColumnSpec> 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑在上面的代碼中須要用具體的參數代替尖括號中的內容。下面是一個簡單的例子: 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
USE pubs 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
GO 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
SELECT 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑     Title, 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
       CASE 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price IS NULL THEN 'Unpriced' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price < 10 THEN 'Bargain' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price BETWEEN 10 and 20 THEN 'Average' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
ELSE 'Gift to impress relatives' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
END  as 'Price Range' sql

FROM titles 
ORDER BY price 
GO 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑這是 
CASE 的典型用法,可是使用 CASE 其實能夠作更多的事情。比方說下面的 GROUP BY 子句中的 CASE: 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
SELECT 'Number of Titles'Count(*
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
FROM titles 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
GROUP BY 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
CASE 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price IS NULL THEN 'Unpriced' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price < 10 THEN 'Bargain' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price BETWEEN 10 and 20 THEN 'Average' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
ELSE 'Gift to impress relatives' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
END 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
GO 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑你甚至還能夠組合這些選項,添加一個 
ORDER BY 子句,以下所示: 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
USE pubs 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
GO 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
SELECT 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
CASE 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price IS NULL THEN 'Unpriced' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price < 10 THEN 'Bargain' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price BETWEEN 10 and 20 THEN 'Average' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
ELSE 'Gift to impress relatives' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
END AS Range, 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑     Title 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
FROM titles 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
GROUP BY 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
CASE 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price IS NULL THEN 'Unpriced' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price < 10 THEN 'Bargain' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price BETWEEN 10 and 20 THEN 'Average' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
ELSE 'Gift to impress relatives' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
END
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑     Title 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
ORDER BY 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
CASE 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price IS NULL THEN 'Unpriced' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price < 10 THEN 'Bargain' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
WHEN price BETWEEN 10 and 20 THEN 'Average' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑        
ELSE 'Gift to impress relatives' 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑    
END
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑     Title 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑
GO 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑注意,爲了在 
GROUP BY 塊中使用 CASE,查詢語句須要在 GROUP BY 塊中重複 SELECT 塊中的 CASE 塊。 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑 
sql 中 case when 語法在這裏添加日誌標題 - 錢途無樑 - Notebook of 錢途無樑除了選擇自定義字段以外,在不少狀況下 
CASE 都很是有用。再深刻一步,你還能夠獲得你之前認爲不可能獲得的分組排序結果集。spa

相關文章
相關標籤/搜索