sql 中 case when 語法(轉)

sql語言中有沒有相似C語言中的switch case的語句??html

  沒有,用case   when   來代替就好了.   
       
  例如,下面的語句顯示中文年月  
   
  select   getdate()   as   日期,case   month(getdate())  
  when   11   then   '十一'  
  when   12   then   '十二'  
  else   substring('一二三四五六七八九十',   month(getdate()),1)  
  end+'月'   as   月份sql

=================================================spa

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

 

轉自:http://www.cnblogs.com/qiantuwuliang/archive/2009/06/03/1495770.htmlhtm

相關文章
相關標籤/搜索