在面試中遇到了這樣的問題,不知道大家是怎麼解決的,是關於sql的。
我是這麼寫的。
在資料庫庫中建這樣一張表
/****** object: table [dbo].[student] script date: 2009-1-15 16:46:41 ******/
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[student]') and objectproperty(id, n'isusertable') = 1)
drop table [dbo].[student]
go/****** object: table [dbo].[student] script date: 2009-1-15 16:46:41 ******/
create table [dbo].[student] (
[id] [int] identity (1, 1) not null ,
[name] [varchar] (50) collate chinese_prc_ci_as null ,
[lesson] [varchar] (50) collate chinese_prc_ci_as null ,
[mark] [int] null
) on [primary]
go裡面的值:有很多的我只寫了部分。
idname
lesson
mark
1tom
english902
linmath803
john
chinese704
tommath875
tomchinese786
linenglish877
linchinese888
john
math459
john
english
5510
aaachinese
5611
aaamath
6712
aaaenglish
8713
bbbchinese
9014
bbbmath
7815
bbbenglish
8716
cccchinese
4317
cccmath
5018
cccenglish
5619
dddchinese
9820
dddmath
7821
dddenglish
8022
eeechinese
8723
eeemath
7724
eeeenglish87
select * from student
--1.有不及格學科學生名字
select distinct name from student where mark<60
--2.超出一門學科不及格的學生名字
select distinct name from student where mark<60
--3.所有學科都不及格
---第一種
select distinct name from student as s where name in(select distinct name from student) and (select mark from student where lesson= 'chinese' and name=s.name ) <60 and
(select mark from student where lesson='math' and name=s.name ) <60 and (select mark from student where lesson='english' and name=s.name ) <60
--4.math排名前三包括並列
select top 3 name, lesson,mark from student where lesson='math' order by(mark) desc
--5.總分排名前三(包括並列)
select top 3 name ,sum(mark) as total from student group by(name) order by(total) desc
--6.列出每一科分數最高者名字及分數
select name ,l.lesson,l.maxmark from ( select lesson, max(mark) as maxmark from student group by(lesson)) as l,student s
where s.mark=l.maxmark and s.lesson=l.lesson
sql查詢遇到的問題
一 與 在pl sql developer中,比如查詢如下sql select decode column name,if1 value1 if2 value2 if3 value1 value2 else from table name 就會出現如下變數對話方塊 要求輸入的名稱為value2的值,...
用SQL進行多表查詢
所謂多表查詢是相對單錶而言的,指從多個資料表中查詢資料,這裡我們主要學習從兩個資料表中如何查詢資料的方法。4.3.1 無條件多表查詢 無條件多表查詢是將各表的記錄以 笛卡爾 積的方式組合起來。如scott.dept表共有4條記錄,scott.emp表共有14條記錄,其 笛卡爾 積將有4 14 56條...
用SQL進行多表查詢
所謂多表查詢是相對單錶而言的,指從多個資料表中查詢資料,這裡我們主要學習從兩個資料表中如何查詢資料的方法。4.3.1 無條件多表查詢 無條件多表查詢是將各表的記錄以 笛卡爾 積的方式組合起來。如scott.dept表共有4條記錄,scott.emp表共有14條記錄,其 笛卡爾 積將有4 14 56條...