首先看我準備一張數據表(這是做一個數據測試的表,就相當於它們,一天打好幾場球)
沒錯,就需要得到箭頭指向的數據表,從數據表結構看出,應該會用到sum加和函數,
同時還會用到分組函數,不同日期的分組
select distinct Date, sum(case Result when '勝利' then 1 else 0 end)as '勝利', //當判斷爲勝利的時候1 不是當然是0 sum+0=sum sum(case Result when '負' then 1 else 0 end)as '負' from Game group by date //給日期分組 //話語來解釋:找到 Result 當爲 '勝利' 表示 1 反之 表示 0 end(結束 有點像if else 的感覺)
上面是一個例子。下面看一下 case when 的語法
關於Case when 主要有兩種語法的用法
//----------ome------------------------------------- case 字段 when '子段值' then '表示的結果值' when '字段2' then '表示的結果值2 ' else '其他' end //---------這種和swtic類似 //----------two------------------------------------------- case when sex='1' then '男' when sex='0' then '女' else '其他' end
以上兩種方式都可以實現相同的功能!
case when 字段 用法:
下面用 case 字段 when 用法
//下面插入代碼:
/****** Script
for SelectTopNRows command
from SSMS ******/ SELECT
[ID]
,[ Name ]
,[SerialNumber]
,[Qty],( case
when 0<Qty and
Qty<=2000 then
'C等級'
when
2000<Qty and
Qty<=3000 then 'B等級'
else
'超級A' end ) as
等級
FROM
[RTest].[dbo].[Produc]
// --------------------------------------------------------------------------
SELECT
[ID]
,[ Name ]
,[SerialNumber]
,[Qty], case
Name when
'三星XXJ' then '韓國'
when
'蘋果4' then
'美國'
when
'蘋果5' then
'美國'
when
'wphone8' then
'美國'
when
'宏基' then
'中國臺灣'
when
'聯想' then
'中國大陸'
else
'山寨'
end
as '地區'
FROM
[RTest].[dbo].[Produc] |