1. 程式人生 > >SQL:select case when(轉)

SQL:select case when(轉)

CASE 可能是 SQL 中被誤用最多的關鍵字之一。雖然你可能以前用過這個關鍵字來建立欄位,但是它還具有更多用法。例如,你可以在 WHERE 子句中使用 CASE

首先讓我們看一下 
CASE 的語法。在一般的 SELECT 中,其語法如下:

SELECT<myColumnSpec>=
CASE
WHEN<A>THEN<somethingA>
WHEN<B>THEN<somethingB>
ELSE<somethingE>
END 

在上面的程式碼中需要用具體的引數代替尖括號中的內容。下面是一個簡單的例子:

USE

 pubs
GO
SELECT
    Title,
    
'Price Range'=
    
CASE
        
WHEN price ISNULLTHEN'Unpriced'
        
WHEN price <10THEN'Bargain'
        
WHEN price BETWEEN10and20THEN'Average'
        
ELSE'Gift to impress relatives'
    
END
FROM titles
ORDERBY price
GO 

這是 
CASE 的典型用法,但是使用 CASE 其實可以做更多的事情。比方說下面的 GROUP
BY 子句中的 CASE

SELECT'Number of Titles'Count(*)
FROM titles
GROUPBY
    
CASE
        
WHEN price ISNULLTHEN'Unpriced'
        
WHEN price <10THEN'Bargain'
        
WHEN price BETWEEN10and20THEN'Average'
        
ELSE'Gift to impress relatives'
    
END
GO 

你甚至還可以組合這些選項,新增一個 
ORDERBY 子句,如下所示:

USE pubs
GO
SELECT
    
CASE
        
WHEN price ISNULLTHEN'Unpriced'
        
WHEN price <10THEN'Bargain'
        
WHEN price BETWEEN10and20THEN'Average'
        
ELSE'Gift to impress relatives'
    
ENDAS Range,
    Title
FROM titles
GROUPBY
    
CASE
        
WHEN price ISNULLTHEN'Unpriced'
        
WHEN price <10THEN'Bargain'
        
WHEN price BETWEEN10and20THEN'Average'
        
ELSE'Gift to impress relatives'
    
END,
    Title
ORDERBY
    
CASE
        
WHEN price ISNULLTHEN'Unpriced'
        
WHEN price <10THEN'Bargain'
        
WHEN price BETWEEN10and20THEN'Average'
        
ELSE'Gift to impress relatives'
    
END,
    Title
GO 

注意,為了在 
GROUPBY 塊中使用 CASE,查詢語句需要在 GROUPBY 塊中重複 SELECT 塊中的 CASE 塊。

除了選擇自定義欄位之外,在很多情況下 
CASE 都非常有用。再深入一步,你還可以得到你以前認為不可能得到的分組排序結果集

相關推薦

SQL:select case when()

CASE 可能是 SQL 中被誤用最多的關鍵字之一。雖然你可能以前用過這個關鍵字來建立欄位,但是它還具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。 首先讓我們看一下 CASE 的語法。在一般的 SELECT 中,其語法如下: SELECT<myColumnSpec>= CAS

SQL語句 select case when ()

CASE 可能是 SQL 中被誤用最多的關鍵字之一。雖然你可能以前用過這個關鍵字來建立欄位,但是它還具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。 首先讓我們看一下 CASE 的語法。在一般的 SELECT 中,其語法如下: SELECT<myColu

CASE WHENSELECT CASE WHEN的用法(寫了一坨爛代碼發現兩條sql就完成了, 哎)

IT 最大 圖片 prim 動態 date 出錯 返回 接下來 轉自:http://blog.sina.com.cn/s/blog_4c538f6c01012mzt.html Case具有兩種格式。簡單Case函數和Case搜索函數。 簡單Case函數

ORACLE CASE WHENSELECT CASE WHEN的用法

四,根據條件有選擇的UPDATE。 例,有如下更新條件 工資5000以上的職員,工資減少10%工資在2000到4600之間的職員,工資增加15% 很容易考慮的是選擇執行兩次UPDATE語句,如下所示--條件1 UPDATE Personnel SET salary = salary * 0.9 WH

CASE WHENSELECT CASE WHEN的用法、SUM函式中的數字引數()

Case具有兩種格式。簡單Case函式和Case搜尋函式。 簡單Case函式 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜尋函式  CASE WHEN sex = '1' THEN 

Oracle select case when

對比 設計 搜索 性別 primary 忽略 oracl 數據 from Case具有兩種格式。簡單Case函數和Case搜索函數。 --簡單Case函數 CASE sex WHEN ‘1‘ THEN ‘男‘ WHEN ‘2‘ THEN ‘女‘ ELSE ‘

SQLcase when then用法(用於分類統計)

char purge 格式 但是 統計 spa 比較 log 永遠 ase具有兩種格式。簡單case函數和case搜索函數。 --簡單case函數 case sex when ‘1‘ then ‘男‘ when ‘2‘ then ‘女’

SQL利用Case When Then多條件

sum mage 需要 而且 例如 user 英國 根據 來看 CASE WHEN 條件1 THEN 結果1 WHEN 條件2 THEN 結果2 WHEN 條件3 THEN 結果3 WHEN 條件4 THEN 結果4......... WHEN

CASE WHENSELECT CASE WHEN的用法

最大 但是 nio decode content src between primary ffffff Case具有兩種格式。簡單Case函數和Case搜索函數。 簡單Case函數 CASE sex WHEN ‘1‘ THEN ‘男‘ WHEN

SQLcase when

參考 技術分享 搜索 fec country nbsp lec center then 大致學習了下SQL的功能語句,case when 類似於c語言中的switich case語句,多分支選擇,不同的值可以有不同的返回量。比如,在一個包含了sex字段的表中,可能的值為1、

SQLcase when子句的使用(連續變數的區間分段統計場景)

某院系2018年計劃舉辦為期一週的學生電競通關能力預測比賽。現已進入決賽,有6位選手入圍。要求根據給定的兩張表如下所示: UserUser表( user_id int,—使用者ID user_name varchar(50),—使用者姓名 user_type int—使用者型別 ) Game

oracle菜鳥學習之 select case when的使用

com 結束 bstr .com 第一個 rom The 表格 num [toc] oracle菜鳥學習之 select case when的使用 格式語法 case when 條件1 then action1 when 條件2 then action2

SQLcase when then else end用法

一、簡單用法 case具有兩種格式。簡單case函式和case搜尋函式。 簡單case函式 SELECT s.s_id, s.s_name, s.s_sex, CASE WHEN s.s_sex = '1' THEN '男' WHEN s.s_s

case...when...then if 用法 select case when if 的一些用法

select case when if 的一些用法 概述:sql語句中的case語句與高階語言中的switch語句,是標準sql的語法,適用於一個條件判斷有多種值的情況下分別執行不同的操作。 首先,讓我們看一下CASE的語法。在一般的SELECT中,其語法格式如下:  CASE&nb

SQLcase when then用法

case具有兩種格式:                              簡單case函式;                             case搜尋函式; --簡單case函式 case sex when '1' then '男' when

SQL case when then end根據某列資料內容在新列顯示自定義內容 SQL利用Case When Then多條件判斷SQL 語句

select ID,Username,namer=(case when(score<='50') then '實習' when(score>'50' and score<='500' ) then

SQLcase when 總結

SQL 中case when 總結 SQL 中case when 總結 簡單case 函式語法 Case搜尋函式語法 例項 簡單的梳理一下case

sql (6)——case when then

case 具有兩種形式:簡單case函式和case搜尋函式 以leetcode題目為例:將sex列中所有的female(f)換成male(m): UPDATE salarySET    sex = CASE sex     &

SQLcase when then 用法

一、case具有兩種格式。簡單case函式和case搜尋函式 --簡單case函式 case sex when '1' then '男' when '2' then '女’ else '其他' end --case搜尋函式 case when sex = '1' the

SQLCASE WHEN用法詳解(CASE WHEN使用總結)

簡單CASE WHEN函式: CASE SCORE WHEN 'A' THEN '優' ELSE '不及格' END CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' END CASE SCORE WHEN 'C' THEN '中' ELSE