当前位置:首页 » 编程语言 » sql两表联查排名前十
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql两表联查排名前十

发布时间: 2022-08-13 15:53:20

1. sql两个表多列联合查询

createtable[流水表]
([姓名]nvarchar(30),
[班级]nvarchar(30),
[备注]nvarchar(30))


createtable[课程代码表]
([姓名]nvarchar(30),
[一班]int,[二班]int,[三班]int)


insertinto[流水表]values('张三','二班','备注1'),
('李四','三班','备注2'),
('王五','二班','备注3'),
('赵六','一班','备注4'),
('张三','一班','备注5')

insertinto[课程代码表]values('张三',1,2,3),
('李四',4,5,6),
('王五',7,8,9),
('赵六',1,2,3)


go
---1行列转换


/*
SELECT[姓名],[班级],[课程代码]
from[课程代码表]
unpivot([课程代码]for[班级]in([一班],[二班],[三班]))astest
go
*/
---2左连接

selecta.[姓名],b.[课程代码],a.[班级],a.[备注]from[流水表]asa
leftjoin(
SELECT[姓名],[课程代码],[班级]
from[课程代码表]
unpivot([课程代码]for[班级]in([一班],[二班],[三班]))astest
)asbona.[姓名]=b.[姓名]
anda.[班级]=b.[班级]


go


droptable[流水表]
droptable[课程代码表]

2. sql查询两个表,满足(a1=1 a2=2)。按里面的date时间先后找出前10条数据。

select top 10 a.*,b.* from tableA as a,tableB as b where a.a1=1 or b.b1=2 order by a.date,b.date

3. SQL两个表的联合查询语句

select
*
from
(select
a.姓名编号,a.姓名,b.考试科目
as
科目,b.成绩,row_number()over(partition
by
a.姓名
order
by
b.成绩
desc)
as
id
from
表一
a,表二
b
where
a.姓名=b.姓名)
where
id
=
1;
说明:
1、上面的sql是按照成绩降序排列后取出每个姓名的第一条记录,如果想换成升序把【order
by
b.成绩
desc】改成【order
by
b.成绩】即可。
2、如果想取第二条记录把【where
id
=
1;】改成【where
id
=
2;】即可。
3、如果想去前n条把【where
id
=
1;】改成【where
id
<=n;】即可。
---
以上,希望对你有所帮助。

4. SQL语句查询成绩排名前十名的学生

:以上两条均对!,关于表名和排序字段,让提问题的【朋友】填写,我们三人均祝你成功!!!

5. SQL问题--同时查询两个表并排序

把所有SJ前加上表名试试。

6. sql联合查询语句(两张表)

sql联合查询语句(两张表)是:

select A.ID,A.VALUE,A.TYPE,A.NAME,B.KEY,B.ID,B.VALUE,B.NAME
min(VALUE),max(VALUE) from A left join B on A.ID = B.ID
where B.NAME="你输入的名字"
and B.VALUE > (select min(VALUE) from B where NAME="你输入的名字"))
and B.VALUE < (select min(VALUE) from B where NAME="你输入的名字"));