激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - sql server 2008中的apply運算符使用方法

sql server 2008中的apply運算符使用方法

2020-06-12 17:46服務器之家 Sql Server

sql server 2008中的apply運算符使用方法,需要的朋友可以參考一下

Apply運算符可以實現兩個查詢結果的全組合結果,又稱為交叉集合。例如兩個數據組合(A,B)、(A,B),他們的交叉集合為(AA,AB,AA,AB)。

Apply分為Cross Apply和Outer Apply兩種使用方式。具體分析如下:

首先先建立兩個表StudentList和ScoreInfo。腳本語言如下:

復制代碼 代碼如下:


create table StudentList(
id int Identity(1,1) not null,
Name nvarchar(20) not null,
Sex bit not null,
Birthday date not null,
Class nvarchar(2) not null,
Grade nvarchar(2) not null,
regdate date not null,
Primary key (id));

create table ScoreInfo(
id int Identity(1,1) not null primary key,
StudentID int not null,
ClassID int not null,
Score int not null,
TestDate date not null,
regdate date not null);


其中ScoreInfo中的StudentID為StudentList中id的外鍵

插入數據,腳本如下

復制代碼 代碼如下:


insert into StudentList(Name, Sex, Birthday, Class, Grade, regdate) values('張三', 1, '1988-05-28', 1, 8, '2010-05-05');

insert into StudentList(Name, Sex, Birthday, Class, Grade, regdate) values('李四', 1, '1985-09-13', 4, 4, '2010-05-05');

insert into StudentList(Name, Sex, Birthday, Class, Grade, regdate) values('王麗', 0, '1987-11-05', 1, 7, '2010-05-05');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(1, 1, 98, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(1, 2, 92, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(1, 3, 86, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(2, 1, 95, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(2, 2, 94, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(2, 3, 91, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(3, 1, 90, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(3, 2, 88, '2010-04-15', '2010-05-01');

insert into ScoreInfo(StudentID, ClassID, Score, TestDate, regdate) values(3, 3, 90, '2010-04-15', '2010-05-01');


兩個表結構建立完畢,數據也成功插入進去了。為了便于講解在StudentList表中再插入一條記錄

復制代碼 代碼如下:

insert into StudentList(Name, Sex, Birthday, Class, Grade, regdate)
values('李銘', 1, '1989-05-04', 2, 7, '2010-05-05');


輸入以下語句

復制代碼 代碼如下:

select * from StudentList a
cross apply
(select ClassID, Score from ScoreInfo where StudentID=a.id) b;


結果如下

sql server 2008中的apply運算符使用方法

再輸入以下語句

select * from StudentList a
outer apply
(select ClassID, Score from ScoreInfo where StudentID=a.id) b;

結果如下

sql server 2008中的apply運算符使用方法

可以看出Cross Apply和Outer Apply的區別

Cross Apply把語句兩邊的兩個Select查詢結果進行交叉配對,將所有結果展示出來。Cross Apply查詢確保在查詢兩個子集數據的交集時,只有有效信息的集合才被列出來。

OuterApply查詢是把兩個子集的所有組合列了出來,不管數據是否有交叉,全部顯示要配對的數據。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99视频有精品视频高清 | 国产亚洲精品久久午夜玫瑰园 | 亚洲精品v天堂中文字幕 | 久久成人视屏 | 欧美精品99 | 毛片视频免费观看 | 精品国产99久久久久久宅男i | 国产精品久久99精品毛片三a | 一级做a爱片性色毛片 | www噜噜偷拍在线视频 | 99久久久| 一级成人欧美一区在线观看 | 亚洲人成网站在e线播放 | 久久久噜噜噜久久熟有声小说 | 综合精品 | 午夜神马电影网 | 久久精品视频网站 | 99久久久精品视频 | 素人视频在线观看免费 | 国产亚洲综合一区二区 | 久久精品久久久久 | 久久6国产| 久久久久久久久成人 | 98国内自拍在线视频 | 5a级毛片 | 国产一级小视频 | 亚洲国产综合在线观看 | 黄网站免费入口 | 高清av免费 | 蜜桃网站在线观看 | 特片网久久 | 黄色试看视频 | 久久艹综合 | 黄色男女视频 | wwwxxx免费视频 | 一级黄色性感片 | 欧美亚洲国产成人综合在线 | 免费播放欧美毛片 | 国产一区二区三区四区五区加勒比 | 日韩美香港a一级毛片 | 哪里可以看免费的av |