資料庫中的一種條件查詢 case when

2021-08-21 01:31:40 字數 1046 閱讀 2287

在最近的一場筆試中,遇到這樣一道sql的題目。

有一張表如下:

要通過查詢語句得到以下結果:

知識點:case 搜尋函式

1:簡單的case函式

case    clo_name (列名)

when  value1(列值) then  value1' ( value1' 是我們賦予的值 )

when value2 (列值)   then   value2'  ( value2'   是我們賦予的值)   

else '其他'  end

2:case 搜尋函式

case     when clo_name=value1' then value1'

when clo_name=value2  then value2'

else  '其他' end

這兩種方式均可以實現相同的功能。但是有個主意的點就是有多個條件的時候,case第乙個滿足的條件之後的case就會被省略掉了。

3:sum和case結合使用實現分段統計。

select  sum(case when then end)newname from table

回到這個題目;

我們做出的解答就是:

select  year,sum( case when season='1' then num else 0 end)"1季度",

sum( case when season='2' then num else 0 end)"2季度",

sum( case when season='3' then num else 0 end)"3季度",

sum( case when season='4' then num else 0 end)"4季度" 

from sale group by year

達到效果。

hql 條件查詢 返回空的一種情況

為何會出現查詢為空,但是查詢整個表沒問題的情況呢?這裡是沒有分清字串和變數 原來寫的是,string hql from clientinfomodel where clientip query query session.createquery hql query.setstring 0,cip l...

資料庫的查詢總結 按條件查詢

簡單查詢 查詢所有字段 select from 表名 例 select from students 查詢指定字段 select 列1,列2,from 表名 例 select name from students 使用 as 給字段起別名 select id as 序號,name as 名字,gend...

查詢資料庫中滿足條件的特定行資料

查詢資料庫中滿足條件的特定行資料,在這裡主要給出三條查詢語句,其中第三條主要是針對sql server2005資料庫的,因為其中的row number 函式只有在sql server2005中才支援。例子 我資料庫中有乙個table表,表中一共有50條資料,我現在要查詢第21到30條資料,我可以對這...