當前位置:首頁 » 編程語言 » 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="你輸入的名字"));