请教SQL语句

[复制链接]
查看11 | 回复8 | 2012-10-9 18:03:32 | 显示全部楼层 |阅读模式
有三个表:

[U]一类[/U] [U]二类[/U][U]三类[/U]

1 A
2
K
1
I
2 B
3
E
4
J
3 C
7
F
9
K
4 D
8
G
3
L
希望实现查询:
[U]一类[/U] [U]二类[/U][U]三类[/U]
1
A
NULL
I
2
B
K
NULL
3
C
E
L
4
D
NULL
J
7
NULL
F
NULL
8
NULL
G
NULL
9
NULL
NULL
K
我是初学者,望各位大侠指点,不胜感激!
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
3个表还是一个表3个字段?
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
是三个表,每个表有两个字段(数字的和字母的)
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
如何?
select case when a.id is null then b.ID else a.id end as ID,

A.AName,A.BName,b.name CName
from
(
select case when a.id is null then b.ID else a.id end as ID,

a.Name AName,b.Name BName
from
(select 1 ID, 'A' as Name
union
select 2, 'B'
union
select 3, 'C'
union
select 4 ,'D') A
full join
(select 2 ID,'K' as Name
union
select 3,'E'
union
select 7,'F'
union
select 8,'G') B on(a.id=b.id) ) a
full join
(select 1 id,'I' name
union
select 4,'J'
union
select 9,'K'
union
select 3,'L') b on(a.id=b.id)
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
非常感谢,让您费神了!!因为我是初学者,能告诉一下基本解决思路吗?希望对我以后有所帮助。谢了!
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
这个其实就是一个联结的问题:
参看联机帮助中的联接类型可以看到如何根据
不同选取数据要求,采用不同的联结类型:
一般有这个原则:
默认情况下,查询设计器在两个表之间创建内联接。如果要在结果集中包含在联接表中没有匹配项的数据行,可以创建外联接;
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
感谢帮助!谢谢!
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
但是union的select中如果包含blob或clob能做吗?
回复

使用道具 举报

千问 | 2012-10-9 18:03:32 | 显示全部楼层
怎么问的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行