sql語言是每個開發人員必備的一種技能,本文對面試過程中常見的sql面試題進行分類、彙總,每類題型包括一些例題,希望大家能夠舉一反三。mysql資料庫中case when語句,是用於計算條件列表並返回多個可能結果表示式之一。
case
when *** =
'1'then
'男'when *** =
'2'then
'女'else
'未知'
end
注意:(1) 在case函式中,else部分的預設值是null。
(2) case函式只返回第乙個符合條件的值,剩下的case部分被自動忽略。
1. 有乙個學生表:students(id, name ,birthday, ***, grade),要求按每個年級統計男生和女生的數量各是多少,統計結果的表頭為:年級,男生數量,女生數量。
select grade,
count
(case
when *** =
1then
1else
null
end) 男生數,
count
(case
when *** =
2then
1else
null
end) 女生數
from students
group
by grade;
2. 有乙個表table1(a,b,c),用sql語句選出兩個列,第一列是a、b兩列的較大者,第二列是b、c兩列的較小者。select
(case
when a>b then a else b end),
(case
when b>c then b else c end
)from table1
3. 有一張表table2(語文成績、數學成績、英語成績),請用一條sql語句按以下顯示條件得出結果:顯示條件:大於或等於80顯示為優秀,大於或等於60表示及格,小於60分表示不及格。
顯示格式:語文 數學 英語
及格 優秀 不及格
select
(case
when 語=
80then
'優秀'
when 語=
60then
'及格'
else
'不及格'
)as 語文,
(case
when 數=
80then
'優秀'
when 數=
60then
'及格'
else
'不及格'
)as 數學,
(case
when 英=
80then
'優秀'
when 英=
60then
'及格'
else
'不及格'
)as 英語,
from
table
4. 有如下人口統計資料,要求按照國家和性別進行分組,得出結果如下:
--男性人口
sum(
case
when *** =
'2'then population else
0end
)--女性人口
from table_a group
by country;
1. 與group by 結合,自定義列聯表統計
# 統計每個國家的男女人口數量
select country,
sum(
case
when *** =
'1'then population else
0end),
--男性人口
sum(
case
when *** =
'2'then population else
0end
)--女性人口
from table_a
group
by country;
2. 與group by結合,自定義分組統計# 統計每個國家的男女人口數量
select country,
sum(
case
when *** =
'1'then population else
0end),
--男性人口
sum(
case
when *** =
'2'then population else
0end
)--女性人口
from table_a
group
by country;
3. 與distinct結合,去重分組統計# 統計每個型別的數量
select
count
(distinct
case
when
type
='1'
then id else
null
end )type1_count,
count
(distinct
case
when
type
='2'
then id else
null
end )type2_count
from movies
4. 根據條件有選擇的update# 根據現有工資更新工資:
嵌入式筆試面試題(1) C
c 的類的繼承與多型 1 是不是乙個父類寫了乙個virtual 函式,如果子類覆蓋它的函式不加virtual 也能實現多型?能 2 構造 拷貝構造和賦值運算子的概念 3 struct c c const c c c int i c c operator const c c int i void te...
STL程式設計題1(C 程式設計第8周)
問題描述 下面的程式輸出結果是 1 2 6 7 8 9 請填空 include include include using namespace std int main 在此處補充你的 ostream iterator o cout,copy v.begin v.end o return 0 輸入無...
string用法詳解 刷題必用C (3)
在使用string類之前,需要包含以下標頭檔案 include 1 string s 生成乙個空字串s 2 string s str 拷貝建構函式生成str的複製品 3 string s str,stridx 將字串str內 始於位置stridx 的部分當作字串的初值 4 string s str,...