A. 簡單sql語句,查詢成績
select * from xs
inner join
(
select km,max(fs) as fs from xs group by km
)w
on xs.km = w.km and xs.fs = w.fs
這樣行不?憑想像寫的,請參考
B. 如何用SQL語句查詢各門課程的平均成績
創建表:
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[stuscore]
( [name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[subject] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[score] [int] NULL,
[stuid] [int] NULL)
ON [PRIMARY]
GO
SET ANSI_PADDING OFF
插入數據:
insert into dbo.stuscore values ('張三','數學',89,1);
insert into dbo.stuscore values ('張三','語文',80,1);
insert into dbo.stuscore values ('張三','英語',70,1);
insert into dbo.stuscore values ('李四','數學',90,2);
insert into dbo.stuscore values ('李四','語文',70,2);
insert into dbo.stuscore values ('李四','英語',80,2);
查詢結果如下:
列出各門課程的平均成績:
select subject,AVG(score)平均成績 from stuscore
group by subject;
C. 按照人名查出學生的各科成績以及總成績並按總成績排名的sql語句
按照人名查出學生的各科成績以及總成績並按總成績排名的sql語句示例如下:
selectA.name,
(selectB.scorefromtable_scoreBwhereB.type='數學'andA.id=B.id)as數學,
(selectB.scorefromtable_scoreBwhereB.type='語文'andA.id=B.id)as語文,
(selectB.scorefromtable_scoreBwhereB.type='英語'andA.id=B.id)as英語,
(selectSUM(B.score)fromtable_scoreBwhereA.id=B.id)assum_score
fromtable_studentAorderbysum_scoreDESC
以上sql語句首先把學生表和成績表聯合查出每個學生的數學、語文、英語成績,然後通過selectSUM(B.score)fromtable_scoreBwhereA.id=B.id查出每個學生的總成績。
最後orderbysum_scoreDESC實現按總成績倒敘排列。
(3)sql只查詢英語成績擴展閱讀
上述sql語句重點是對as關鍵字的使用-Alias(別名),通過使用SQL,可以為列名稱和表名稱指定別名(Alias)。
表的SQLAlias語法
SELECTcolumn_name(s)FROMtable_nameASalias_name;
列的SQLAlias語法
SELECTcolumn_nameASalias_nameFROMtable_name;
Alias實例:使用表名稱別名
假設我們有兩個表分別是:"Persons"和"Proct_Orders"。我們分別為它們指定別名"p"和"po"。
現在,我們希望列出"JohnAdams"的所有定單。
我們可以使用下面的SELECT語句:
SELECTpo.OrderID,p.LastName,p.FirstNameFROMPersonsASp,Proct_OrdersASpoWHEREp.LastName='Adams'ANDp.FirstName='John'
D. 語文,數學和英語的成績怎麼用sql語句顯示出來
case when語句x0dx0aselect 語文 ,x0dx0a(case 語文x0dx0a when 語文>=80 then '優秀'x0dx0a when 語文>=60 and 語文<80 then '及格'x0dx0a when 語文<60 then '不及格'x0dx0aend) as 語文是否合格,x0dx0a數學,x0dx0a(case 數學x0dx0a when 數學>=80 then '優秀'x0dx0a when 數學>=60 and 語文<80 then '及格'x0dx0a when 數學<60 then '不及格'x0dx0aend) as 數學是否合格,x0dx0a英語,x0dx0a(case 英語x0dx0a when 英語>=80 then '優秀'x0dx0a when 英語>=60 and 英語<80 then '及格'x0dx0a when 英語<60 then '不及格'x0dx0aend) as 英語是否合格,x0dx0a from 成績表 where ......