① sql case when 語句
求總發卡數和總制卡數和發卡正式卡數、發卡臨時卡數、發卡正式卡數,制卡臨時卡數、制卡正式卡數(如Excel中所示)求詳細SQL語句。
--創建測試表
IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[TB]')ANDtypein(N'U'))
DROPTABLE[dbo].[TB1]
GO
CREATETABLE[dbo].[TB1](
[卡狀態][nvarchar](20)NULL,
[卡類型][nvarchar](50)NULL,
)ON[PRIMARY]
GO
--插入測試數據
INSERTINTO[TB1]([卡狀態],[卡類型])
SELECTN'發卡',N'正式卡'UNIONALL
SELECTN'發卡',N'正式卡'UNIONALL
SELECTN'發卡',N'臨式卡'UNIONALL
SELECTN'制卡',N'臨式卡'UNIONALL
SELECTN'制卡',N'正式卡'
GO
--靜態拼接行轉列(糾正簡化一下)
SELECT卡狀態+'數'AS卡狀態,
COUNT(1)AS總數,
SUM(CASEWHEN卡類型='正式卡'THEN1
ELSE0
END)AS正式卡,
SUM(CASEWHEN卡類型='臨式卡'THEN1
ELSE0
END)AS臨式卡
FROMTB1
GROUPBY卡狀態
GO
--輸出結果:
② 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的用法
CASE
WHEN要麼是查詢條件要麼是查詢結構,表名逗號後面沒用,語法不對
④ sql case when 可以嵌套多少個
可以嵌套很多個when ....then.. 最後加上end。解決方法如下:
1、首先新建查詢或者直接打開之前保存的查詢。
⑤ 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將被自動忽略。
(5)sql的whencase擴展閱讀:
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 when 就是case when
判斷 case when 當滿足條件 then 。。。
when ...... then
...
可以寫很多種情況,直到結束
⑦ 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。