作业帮 > 综合 > 作业

sql2000表1(a,b,c,d)表2(a1,b1,c1,d1)表3(a2,b2,c2,d2)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/28 11:54:48
sql2000表1(a,b,c,d)表2(a1,b1,c1,d1)表3(a2,b2,c2,d2)
要求在表4显示(a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2)
备注:表1,表2,表3的数据行数都不一样
sql server里还真没有提供这样一种操作,只能另想办法,用ROW_NUMBER() 加full join可以实现select a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2  from ( select ROW_NUMBER() over(order by a) rowno,*  from 表1 ) as t1 
full join ( select ROW_NUMBER() over(order by a1) rowno,*  from 表2 ) as t2
on t1.rowno=t2.rowno
full join ( select ROW_NUMBER() over(order by a2) rowno,*  from 表3 ) as t3
on t2.rowno=t3.rowno
再问:
再问: 老师ROW_NUMER不可识别函数名
再答: 忘了,row_number() 是Sql 2005 提供的新函数,SQL2000不支持。。。
要不你复制到Excel表里,再导进去?
再问:
再问: 老师就这中效果还有别的方法吗
再答: 我晕,你前3张表的第一列是什么东西?是键吧?直接连接查询啊select a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2  from 表1 
left join  表2 on 表1.XXX=表2.XXX
left join  表3 on 表2.XXX=表3.XXXXXX就是你那第一列
再问: 是键但是行数都不样
再问:
再问: 谢谢老师,太复杂,我就把这3个表单独使用把,不把这3个表集中到一个表中了。谢谢老师
再答: 我觉得首先你要搞清楚表之间的关系,能不能用连接得到的结果是不是你想要的。你了解下外连接的作用和用法,我后面给你的就是。
再问: 这三个表数据随时增加,删除,没有可用的链接,我单独使用就是了,谢谢老师,你辛苦了