Office中国论坛/Access中国论坛

标题: 多列合并成一列 [打印本页]

作者: littlekey    时间: 2011-6-8 19:19
标题: 多列合并成一列
加入有一张表:
ID  手机1  手机2  手机3

我需要将这个合并成:
ID  手机

其中手机是将手机1-3这3个字段的值合并起来,如果有多部手机,则自动重复多个ID

这样的sql语句如何写?谢谢

作者: roych    时间: 2011-6-8 19:28
要用打开记录集的方法来写,详细请搜索TodayNew版主的
“来回折腾”
作者: littlekey    时间: 2011-6-8 19:47
还不是这样,我举个例子吧,我需要将
ID
手机1
手机2
手机3
1001
1
2
 
1002
3
 
 
1003
4
5
6
1004
7
 
8


变成
ID
手机
1001
1
1001
2
1002
3
1003
4
1003
5
1003
6
1004
7
1004
8


作者: roych    时间: 2011-6-8 20:20
用联合查询(Union all)生成表之后再按ID排序即可。
例如:
select ID,手机1 from 表1
Union all
select ID,手机2 from 表1
Union all
select ID,手机3 from 表1
做一个查询(这时候会有些空值存在),假定保存为查询1,然后再以查询1为数据源生成或追加到已有的表中就可以了(注意设置好条件)。
作者: roych    时间: 2011-6-8 20:20
用联合查询(Union all)生成表之后再按ID排序即可。
例如:
select ID,手机1 from 表1
Union all
select ID,手机2 from 表1
Union all
select ID,手机3 from 表1
做一个查询(这时候会有些空值存在),假定保存为查询1,然后再以查询1为数据源生成或追加到已有的表中就可以了(注意设置好条件)。
作者: littlekey    时间: 2011-6-8 20:27
这是一个好方法,再加一个where作为判别,如果为空,则不提取出来
谢谢roych兄
作者: littlekey    时间: 2011-6-8 20:32
问:sql中union与union all有什么不同
答:
union 检查重复
union all 不做检查
比如 select 'a' union select 'a' 输出就是一行 a
比如 select 'a' union all select 'a' 输出就是两行 a




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3