sql一些小查詢語句

2021-07-14 04:07:20 字數 1637 閱讀 8289

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...