mssql 兩表合并sql語句
一、問題
學(xué)生表: 課程表:
id 姓名 課程號(外鍵) 課程號,課程名
'1', 'xix', 1 1,' 語文'
'2', 'cic', 2 2, '數(shù)學(xué)'
'3', 'ddi', 4 3,'英語'
將學(xué)生表、課程表合成一個新表 destTb:
id 姓名 課程號 課程名
1 xix 1 語文
2 cic 2數(shù)學(xué)
3 ddi NULLNULL
NULLNULL3英語
二、建立測試數(shù)據(jù)
CREATE TABLE student(id nvarchar(10),name nvarchar(10),cno int)
INSERT student SELECT '1','xix',1
UNION ALL SELECT '2','cic',2
UNION ALL SELECT '3','ddi',4
GO
CREATE TABLE class(cno int,name nvarchar(10))
INSERT class SELECT 1,'語文'
UNION ALL SELECT 2,'數(shù)學(xué)'
UNION ALL SELECT 3,'英語'
GO
select id ,s.name as 姓名,c.cno as cno,c.name as 課程 FROM student as s FULL OUTER JOIN class as c ON s.cno=c.cno
三、合并插入
--目標(biāo)表destTb不存在 ,結(jié)果集作為tmp
select * into destTb from (select id ,s.name as 姓名,c.cno as cno,c.name as 課程 FROM student as s FULL OUTER JOIN class as c ON s.cno=c.cno) as tmp
--如果目標(biāo)表destTb已經(jīng)存在
insert into destTb select id ,s.name as 姓名,c.cno as cno,c.name as 課程 FROM student as s FULL OUTER JOIN class as c ON s.cno=c.cno
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。