2 hezhongting hezhongting 于 2013.12.05 11:09 提问

sql 同一个表中如何把两条数据合并成一条显示,并显示两条数据的全部内容

数据库是 sqlserver2008的环境。 是一个列变行的问题 ,请大师帮忙啊。
比如 table表中
字段:
id name bianhao address shijian

1 张三 001 北京 2013-12-1
2 李四 001 北京 2013-12-1

最后显示的内容为:
字段:
name1 name2 bianhao address shijian
张三 李四 001 北京 2013-12-1

合并条件为: bianhao和address相同的数据。

3个回答

a_liujian
a_liujian   2013.12.05 11:20
已采纳

select replace(WMSYS.WM_CONCAT(t.name|| ' ' ||t.pid||' '),',','') as value_s from test.tbl_test t;

hezhongting
hezhongting 非常感谢。
大约 4 年之前 回复
a_liujian
a_liujian 他的实现逻辑,看不懂的,我刚也查了下sqlserver貌似是没有列转行的函数,只有在2005版本添加了个行转类的函数,你去http://wcp88888888.iteye.com/blog/1700279贴上看看列转行,希望对你有帮助
大约 4 年之前 回复
hezhongting
hezhongting 那你能吧 这个WMSYS.WM_CONCAT() 函数发过来吗?
大约 4 年之前 回复
hezhongting
hezhongting 谢谢你啊。 我找找
大约 4 年之前 回复
a_liujian
a_liujian 也有同作用的函数的,只是取名不一样而已,它的底层实现方式一样,你找找看!我好久没弄sqlserver了,想不起来了
大约 4 年之前 回复
hezhongting
hezhongting 可是我用的是 sqlserver数据库。
大约 4 年之前 回复
a_liujian
a_liujian 对的 oracle里面自带的函数,该函数的作用是,把列显示变为横显示
大约 4 年之前 回复
hezhongting
hezhongting WMSYS.WM_CONCAT() 是函数吗? 有点看不明白。能详细一些吗?谢谢。
大约 4 年之前 回复
delphishen007
delphishen007   2013.12.05 17:58

select a.name,b.name2,a.bianhao,a.address,a.shijian from table a,table b

mevip
mevip   2013.12.05 12:30

我觉得你应该理清思路,到底要做什么。而且要交代清楚环境,一个表里只有两条记录吗?还是有很多条,每两条合并一下?

hezhongting
hezhongting 是sqlserver2008的环境。 这张表里肯定不止两天数据。 不是每两条就合并,而是bianhao和address相同就合并。
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!