在最近的一場筆試中,遇到這樣一道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條資料,我可以對這...