求救...

wwwiii520 2009-03-18 10:12:12

tableA和tableB
Colid ColB ColC |Colid ColD ColJ
1 B C | 5 S P
2 S Q | 1 W M
3 M D | 4 E L

查詢出一個表
Colid ColB ColC ColD ColJ
1 B C W M
2 S Q
3 M D
4 E L
5 S P
...全文
168 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
牙签是竹子的 2009-03-19
  • 打赏
  • 举报
回复
zjl8518 2009-03-19
  • 打赏
  • 举报
回复
isnull 函数真好用啊!
htl258_Tony 2009-03-19
  • 打赏
  • 举报
回复
select * into table1 from (
select 1 Colid , 'B' ColB , 'C' ColC
union all select 2 , 'S' , 'Q'
union all select 3 , 'M' , 'D'
) t
select * into table2 from (
select 5 Colid , 'S' ColD , 'P' ColJ
union all select 1 , 'W' , 'M'
union all select 4 , 'E' , 'L'
) t

select isnull(a.Colid,b.Colid) Colid,isnull(a.ColB,'') ColB,isnull(a.ColC,'') ColC,isnull(b.ColD,'') ColD,isnull(b.ColJ,'') ColJ from table1 a full join table2 b
on a.Colid=b.Colid
order by colid

drop table table1,table2

Colid ColB ColC ColD ColJ
----------- ---- ---- ---- ----
1 B C W M
2 S Q
3 M D
4 E L
5 S P

(所影响的行数为 5 行)
ljluck7687 2009-03-19
  • 打赏
  • 举报
回复
不错,是个全连接问题,可用关键字full outer join来全连接两个表

也可以这样写
select a.Colid,a.ColB,a.ColC,b.ColD,b.ColJ from a,b where a.id*=b.id
yuyangyangde 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hdhai9451 的回复:]
乌龟不见来,这个题好占分...
[/Quote]
...
wwwiii520 2009-03-19
  • 打赏
  • 举报
回复
a full join b on a.Colid=b.Colid

單用全連接查詢不行的. Colid沒有總合成一個列.
claro 2009-03-19
  • 打赏
  • 举报
回复
帮顶
ai_li7758521 2009-03-18
  • 打赏
  • 举报
回复
select
isnull(a.Colid,b.Colid) Colid,isnull(ColB,''),isnull(ColC,''),isnull(ColD,''),isnull(ColJ,'') from a full join b
on a.Colid=b.Colid
htl258_Tony 2009-03-18
  • 打赏
  • 举报
回复
select isnull(a.Colid,b.Colid) Colid,isnull(ColB,'') ColB,isnull(ColC,'') ColC,isnull(ColD,'') ColD,isnull(ColJ,'') ColJ, from a full join b
on a.Colid=b.Colid
ws_hgo 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jinjazz 的回复:]
isnull(ColC,null)

这有意义?
[/Quote]

错啦
select isnull(a.Colid,b.Colid) Colid,ColB,ColC,ColD,ColJ, from a full join b
on a.Colid=b.Colid


谢啦
jinjazz 2009-03-18
  • 打赏
  • 举报
回复
isnull(ColC,null)

这有意义?
ks_reny 2009-03-18
  • 打赏
  • 举报
回复
用全连接。

select
isnull(a.Colid,b.Colid) Colid,
ColB, ColC, ColD , ColJ
from a full outer join b
on a.Colid=b.Colid
ws_hgo 2009-03-18
  • 打赏
  • 举报
回复
注意结贴速度
ws_hgo 2009-03-18
  • 打赏
  • 举报
回复
select isnull(a.Colid,b.Colid) Colid,isnull(ColB,null),isnull(ColC,null),isnull(ColD,null),isnull(ColJ,null) from a full join b
on a.Colid=b.Colid
Andy__Huang 2009-03-18
  • 打赏
  • 举报
回复
乌龟不见来,这个题好占分...
jinjazz 2009-03-18
  • 打赏
  • 举报
回复
select 
isnull(a.Colid,b.Colid) Colid,
ColB, ColC, ColD , ColJ
from a full outer join b
on a.Colid=b.Colid
jinjazz 2009-03-18
  • 打赏
  • 举报
回复
select 
isnull(a.Colid,b.Colid) Colid,
ColB, ColC, ColD , ColJ
from a full outer join b
on a.Colid=b.Colid

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧