最近去面試碰到了兩道關於資料庫的筆試題目:
1:有member表(m_id int,m_*** varchar(20))其中m_***有三個不同值('男','女','null'),
要求用一條sql語句把member表的m_***字段更新成m_***的值('男')變成'女',
'女'變成'男','null'不變;
答:update member
set m_*** =case m_*** when '女' then '男' when '男' then '女' else 'null'
end
2:有一張表table1,有三個字段分別是:年度,季度,數量;現在資料如下:
年度,季度,數量
1991 1 23
1991 2 32
1991 3 15
1991 4 20
1992 1 25
1992 2 65
要求用一條sql語句查出結果為:
年份 1季度 2季度 3季度 4季度
1991 23 32 15 20
1992 25 65 0 0
答:select b.year as '年份',sum(b.quarter1) as '1季度',sum(b.quarter2) as '2季度',
sum(b.quarter3) as '3季度',sum(b.quarter4) as '4季度' from(
select a.year,
case a.quarter when 1 then a.nums else 0 end as quarter1,
case a.quarter when 2 then a.nums else 0 end as quarter2,
case a.quarter when 3 then a.nums else 0 end as quarter3,
case a.quarter when 4 then a.nums else 0 end as quarter4
from table1 as a)b
group by b.year
乙個 關於 case when的SQL
例 從stud grade表中查詢所有同學考試成績情況,凡成績為空者輸出 未考 小於60分輸出 不及格 60分至70分輸出 及格 70分至90分輸出 良好 大於或等於90分時輸出 優秀 select stud id,name,score case when grade is null then 未考...
乙個 關於 case when的SQL
例 從stud grade表中查詢所有同學考試成績情況,凡成績為空者輸出 未考 小於60分輸出 不及格 60分至70分輸出 及格 70分至90分輸出 良好 大於或等於90分時輸出 優秀 select stud id,name,score case when grade is null then 未考...
SQL中case when的用法
一.單個case when用法 首先,新建乙個表 create table battle riqi date,result varchar 10 插入資料 insert all into battle values to date 2005 05 09 yyyy mm dd win into bat...