sqlcasewhen用法
『壹』 關於使用sql語句sum(case when)來實現分類匯總功能
有兩處有筆誤,如果結果不同的話,需要檢查一下,先對比下總金額,再對比各個的銷售額,再檢查姓名是否完全一致,EXCEL中經常有前後空格或是不容易顯示出來彎旅含的字元會有影響,用select 月份,姓名,sum(銷售數量*產品單價) from 表格 group by 月份,姓名
例如:
select
月份,
sum(casewhen銷售人員='姓名1'then銷售數量*產品單價else0end)as姓名1銷售額,
sum(casewhen銷售人員='姓名2'then鎮瞎銷售數量*產品單價else0end)as姓名1銷售額,
sum(casewhen銷售人員='姓名3'then銷售數量*產品單價else0end)as姓名1銷售額
from埋笑表格
groupby月份,銷售人員
(1)sqlcasewhen用法擴展閱讀:
注意事項
case when有用兩種用法如下:
用法一:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
用法二:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
『貳』 case when用法sql
在SQL中,「Case When」語句用法如下:
在SQL中,「Case When」語句用於選擇判斷,在執行時先對條件進行判斷,然後根據判斷結果做出相應的操作;語法「CASE 欄位 WHEN 條件1 THEN 操作啟沒1 WHEN 條件2 THEN 操作擾州2...ELSE 操作n END;」。
此外,SQL 也有一些變種,就像中文有很多方言,比如:
微軟的 SQL Server 使用 T-SQL;
Oracle 使用 PL/SQL;
微軟 Access 版本的 SQL 被稱為 JET SQL(本地格式)。
『叄』 SQL語句中case,when,then的用法
Select Case 語句在有多個可能的條件必須被檢查時使用。與 If 語句不同,Select Case語句在找到匹配的Case 表達式並執行了Case 表達式和下一個Case 表達式之間的語句後將立即跳出。如果沒有匹配的Case 表達式,將執行其它語句。
Case Else 與lse 的意義相同。Case 語句能接受各種類型的(作為判斷條件的)表達式。表達式可以是單一值、由逗號分隔的一組值、能返回值的函數、用"To"關鍵字指定的值的范圍或者使用"Is"關鍵字對等式或不等式進行測試。您可以連接不同類型的不同表達式,只要將它們用逗號分開即可。
『肆』 sql 的case when 語句
把括弧去掉就好了。
下面是case的兩種用法,可以看下 :
1. 使用帶有 CASE 簡單表達式的 SELECT 語句。
在 SELECT 語句中,CASE 簡單表達式只能用於等同性檢查,而不進行其他比較。下面的示例使用 CASE 表達式更改產品系列類別的顯示,以使這些類別更易於理解。
USE AdventureWorks2008R2;
GO
SELECT ProctNumber, Category =
CASE ProctLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Proction.Proct
ORDER BY ProctNumber;
GO
2. 使用帶有 CASE 搜索表達式的 SELECT 語句
在 SELECT 語句中,CASE 搜索表達式允許根據比較值替換結果集中的值。下面的示例根據產品的價格範圍將標價顯示為文本注釋。
USE AdventureWorks2008R2;
GO
SELECT ProctNumber, Name, 'Price Range' =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Proction.Proct
ORDER BY ProctNumber ;
GO
『伍』 sql語句中「case when」怎樣使用
舉個例子就明白了,例如在員工的工資表把員工的工資分成等級
1000以下為低薪,1000-2000為中等,其他為高薪
select (case when salary <= 1000 then '低薪' when salary > 1000 and salary < 2000 then '中等' else '高薪' end ) as 工資等級 from employee
這樣,工資等級就可以當做一個列來處理,包括where裡面,可以寫where (case when salary <= 1000 then '低薪' when salary > 1000 and salary < 2000 then '中等' else '高薪' end ) = 『低薪'
當做一個列就好了
『陸』 SQL中的decode及case when的用法
在寫 sql的時候我們會經常使用到decode函數,今天我們來講一些decode的基本用法吧。
表達式:decode(列名,值1,值11,值2,雀隱值22,值3,值33......,值X)
表達式的意思:
文字描述: 如果列名對應的值等於值1,那麼他的值就等於值11,如果列名對應的值是值2那麼他的值就是值22,如果列名對應的值是值3那麼他的值就是值33等等,條件都不滿足,列名的值就是值X 。
用java的語法來表達就是:
其實在sql中還有一種方法表達的來表達if else的判斷春歲棗語句,那就是 case when語句,但是case when 有兩種表方式.
用case when 來表達上面的語句:
表達方式一:
表達方式二:
最後提一點一定要 注意 的是:
如扒拆果不一樣那就會報錯
ps:如果對你們有幫助請點擊下面的喜歡,謝謝
『柒』 SQL case when 用法
後面寫法,沒指定score這個欄位來自那張表,所以不行。
『捌』 sql case when 怎麼用
Case具有兩種格式。簡單Case函數和Case搜索函數。
–簡單Case函數:
CASE sex。
WHEN 』1′ THEN 』男』。
WHEN 』2′ THEN 』女』。
ELSE 』其他』 END。
–Case搜索函數:
CASE WHEN sex = 』1′ THEN 』男』。
WHEN sex = 』2′ THEN 『女』。
ELSE 『其他』 END。
這兩種方式,可以實現相同的功能。簡單Case函數的寫法相對比較簡潔,但是和Case搜索函數相比,功能方面會有些限制,比如寫判斷式。還有一個需要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
–比如說,下面這段SQL,將永遠無法得到「第二類」這個結果。
CASE WHEN col_1 IN (『a』, 『b』) THEN 』第一類』。
WHEN col_1 IN (『a』) THEN 』第二類』。
ELSE』其他』 END。
『玖』 SQL語句中case,when,then的用法
用法如下:
復制代碼
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE
WHENs.s_sex='1'THEN'男'
WHENs.s_sex='2'THEN'女'
ELSE'其他'
ENDassex,
s.s_age,
s.class_id
FROM
t_b_students
WHERE
1=1
這兩個結果是一樣的:
需要注意的一點是,Case函數只返回第一個限定值,其餘的Case將被自動忽略。
(9)sqlcasewhen用法擴展閱讀:
Case有兩種格式:簡單函數和Case搜索函數。
簡單的例子功能:
CASEsex
WHEN『1』THEN『男』
WHEN『0』THEN『女』
ELSE『其他』END
Case搜索函數:
CASEWHENsex=『1』THEN『男』
WHENsex=『0』THEN『女』
ELSE『其他』END
顯然簡單的Case函數天生簡潔,但它們只適用於這種單欄位單值比較,而Case搜索函數具有適用於所有比較用例的優勢。
另一個需要注意的問題是,在Case函數滿足了某個條件之後,其餘的條件將被自動忽略,這樣即使滿足了多個條件,在執行過程中也只能識別第一個條件。
當使用CASEWHEN時,您可以將其視為沒有欄位名的欄位,欄位值是有條件的,並且在需要使用欄位名時可以使用as來定義別名。
『拾』 sql 中 case when 語法
case具有兩種格式。簡單case函數和case搜索函數。
--簡單case函數
case sex
when '1' then '男'
when '2' then '女'
else '其他' end
--case搜索函數
case when sex = '1' then '男'
when sex = '2' then '女'
else '其他' end
這兩種方式,可以實現棗沒相同的功能。簡單case函數的寫嘩乎法相對比較簡潔,但是和case搜索函數相比,功能方面會有些限制,比如寫判定式。
還有一個需要注重的問題,case函數只返回第一個符合條件的值,剩下的case部分將會被自動忽略。
--比如說,下面這段sql,你永遠無法得到「第二類」這個結果
case when col_1 in ( 'a', 'b') then '第一類亂岩悉'
when col_1 in ('a') then '第二類'
else'其他' end