1. 表內容:
2005-05-09 勝
2005-05-09 勝
2005-05-09 負
2005-05-09 負
2005-05-10 勝
2005-05-10 負
2005-05-10 負
如果要生成下列結果, 該如何寫sql語句?
勝 負
2005-05-09 2 2
2005-05-10 1 2
select 時間
,sum(case when win='勝
' then 1 else 0 end) 勝,
sum(case when win='負
' then 1 else 0 end)
負from tb
group by 時間
2. 表中有a b c三列,用sql語句實現:
當a列大於b列時選擇a列否則選擇b列
當b列大於c列時選擇b列否則選擇c列
select (case when a>b then a else b
end),
(case when b>c then b esle c
end)
from table_name
3. 有一張表,裡面有3個字段:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記 錄並按以下條件顯示出來(並寫出您的思路): 大於或等於80表示優秀,大於或等於60表示及格,小於60分表示不及格。
顯示格式:
語文 數學 英語
及格 優秀 不及格
select case when語文
>= 80 then『優秀
』when語文
>= 60 then『及格
』else
『不及格
』end語文
,case when
數學 >= 80 then『優秀
』when數學
>= 60 then『及格
』else
『不及格
』end數學
,case when
英語 >= 80 then『優秀
』when英語
>= 60 then『及格
』else
『不及格
』end英語
from 表名;
4. 用一條sql 語句 查詢出每門課都大於80 分的學生姓名
name kecheng fenshu
張三 語文 81
張三 數學 75
李四 語文 76
李四 數學 90
王五 語文 81
王五 數學 100
王五 英語 90
select distinct name from表
where name not in(select name from
表名 where fenshu <= 80);
SQL查詢的一些小技巧
1.當使用and時,將很可能不為真的條件放在前面.因為資料庫系統從左到右計算條件,並遵守運算子的優先順序.如果乙個條件中存在兩個或多個and運算子,則左邊的乙個條件首先被計算.例子 1 select language 2from computer 3where comefrom usa and da...
SQL一些小技巧
1.把某個字段重新生氣序列 從1到n declare i int set i 0 update table1 set i i 1,field1 i 2.按成績排名次 update 成績表 set a.名次 select count 1 from 成績表 b where a.總成績 b.總成績 fro...
SQL一些小技巧
1.把某個字段重新生氣序列 從1到n declare i int set i 0 update table1 set i i 1,field1 i 2.按成績排名次 update 成績表 set a.名次 select count 1 from 成績表 b where a.總成績 b.總成績 fro...