设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1881|回复: 6
打印 上一主题 下一主题

[查询] 多列合并成一列

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-8 19:19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
加入有一张表:
ID  手机1  手机2  手机3

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

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

这样的sql语句如何写?谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-6-8 19:28:17 | 只看该作者
要用打开记录集的方法来写,详细请搜索TodayNew版主的
“来回折腾”
3#
 楼主| 发表于 2011-6-8 19:47:37 | 只看该作者
还不是这样,我举个例子吧,我需要将
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

4#
发表于 2011-6-8 20:20:02 | 只看该作者
用联合查询(Union all)生成表之后再按ID排序即可。
例如:
select ID,手机1 from 表1
Union all
select ID,手机2 from 表1
Union all
select ID,手机3 from 表1
做一个查询(这时候会有些空值存在),假定保存为查询1,然后再以查询1为数据源生成或追加到已有的表中就可以了(注意设置好条件)。
5#
发表于 2011-6-8 20: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为数据源生成或追加到已有的表中就可以了(注意设置好条件)。
6#
 楼主| 发表于 2011-6-8 20:27:11 | 只看该作者
这是一个好方法,再加一个where作为判别,如果为空,则不提取出来
谢谢roych兄
7#
 楼主| 发表于 2011-6-8 20:32:44 | 只看该作者
问:sql中union与union all有什么不同
答:
union 检查重复
union all 不做检查
比如 select 'a' union select 'a' 输出就是一行 a
比如 select 'a' union all select 'a' 输出就是两行 a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-10 19:50 , Processed in 0.097535 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表