34,576
社区成员
发帖
与我相关
我的任务
分享
横向拼接如下
select * from
(select s1 from te1) t1
full join
(select s2 from te2) t2
on t1.s1=t2.s2
--> liangCK小梁 于2008-10-31
--> 生成测试数据: @T1
DECLARE @T1 TABLE (BH VARCHAR(2),TNAME VARCHAR(4),SEX VARCHAR(2))
INSERT INTO @T1
SELECT '01','张三','男' UNION ALL
SELECT '02','李四','男' UNION ALL
SELECT '03','王五','女'
--> 生成测试数据: @T2
DECLARE @T2 TABLE (DZ VARCHAR(6),ZW VARCHAR(6))
INSERT INTO @T2
SELECT '西环路','学生' UNION ALL
SELECT '东环路','工程师' UNION ALL
SELECT '南环路','总经理'
--SQL查询如下:
SELECT ID=IDENTITY(INT,1,1),* INTO #T1 FROM @T1;
SELECT ID=IDENTITY(INT,1,1),* INTO #T2 FROM @T2;
SELECT A.BH,A.TNAME,A.SEX,B.DZ,B.ZW
FROM #T1 AS A
LEFT JOIN #T2 AS B
ON A.ID=B.ID
/*
BH TNAME SEX DZ ZW
---- ----- ---- ------ ------
01 张三 男 西环路 学生
02 李四 男 东环路 工程师
03 王五 女 南环路 总经理
(3 行受影响)
*/
SELECT
BH, TNAME, SEX ,DZ, ZW
FROM T1
LEFT OUTER JOIN T2 ON T2.BH = T1.BH
--就是一對一的鏈接就可以了嗎 兩個表好像沒有什么關系啊!
--> --> (Andy)生成测试数据 2008-10-31
Set Nocount On
declare @1 table([BH] nvarchar(2),[TNAME] nvarchar(2),[SEX] nvarchar(1))
Insert @1
select N'01',N'张三',N'男' union all
select N'02',N'李四',N'男' union all
select N'03',N'王五',N'女'
declare @2 table([BH] nvarchar(2),[DZ] nvarchar(3),[ZW] nvarchar(3))
Insert @2
select N'01',N'西环路',N'学生' union all
select N'02',N'东环路',N'工程师' union all
select N'03',N'南环路',N'总经理'
Select a.BH,a.TNAME,a.SEX,b.DZ,b.ZW
From @1 As a
Inner Join @2 As b On b.BH=a.BH
/*
BH TNAME SEX DZ ZW
---- ----- ---- ---- ----
01 张三 男 西环路 学生
02 李四 男 东环路 工程师
03 王五 女 南环路 总经理
*/
SELECT T1.BH,T1.TNAME,T1.SEX,T2.DZ,T2.ZW,...,TN.字段
FROM FROM T1,T2,...,TN
where T1.BH=T2.BH and T1.BH=(...).BH and T1.BH=TN.BH
--创建table 1
create table t1
(
BH nvarchar(2) not null,
TNAME NVARCHAR(20),
SEX NVARCHAR(2)
)
--插入数据
INSERT INTO T1(BH,TNAME,SEX)
SELECT '01','张三','男' union all
select '02','李四','男' union all
select '03','王五','女'
--创建 table 2
create table t2
(
BH nvarchar(2) NOT NULL,
DZ NVARCHAR(40),
ZW NVARCHAR(40)
)
--插入数据
INSERT INTO T2(BH,DZ,ZW)
SELECT '01','西环路','学生' union all
select '02','东环路','工程师' union all
select '03','南环路','总经理'
/* SQL语句1 */
SELECT T1.BH,T1.TNAME,T1.SEX,T2.DZ,T2.ZW FROM T1,T2
WHERE T1.BH=T2.BH
/*方法二*/
SELECT T1.BH,T1.TNAME,T1.SEX,T2.DZ,T2.ZW
FROM T1 inner join T2
on T1.BH=T2.BH
--删除两个表
DROP TABLE T1
DROP TABLE T2