120急救!如何将多行数据合并到一行数据中

maoxiaoling9598 2013-02-20 03:54:02

如何将上图中的两行数据合并到一行中。
合并后的数据为:


列名:InvestorsName,TypeName,IDcard,Investment,InvestmentRatio,InvestorsName1,TypeName1,IDcard1,Investment1,InvestmentRatio1

对应数据:
姚雅,法人,4564564564564564,10,10,曹,股东,36688899545588/411489,90,90


在线等,救急!
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
maoxiaoling9598 2013-02-20
  • 打赏
  • 举报
回复
引用 5 楼 DBA_Huangzj 的回复:
SQL code?1234567891011121314151617181920212223242526272829303132333435363738------------------------------------------------------------------ Author :DBA_Huangzj(發糞塗牆)-- Date :2013-0……
你就是牛逼的!你就是李春波
-Tracy-McGrady- 2013-02-20
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
不就是列转行而已嘛
你也知道了?
發糞塗牆 2013-02-20
  • 打赏
  • 举报
回复
不就是列转行而已嘛
發糞塗牆 2013-02-20
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-02-20 16:07:09
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 
--	Jun 17 2011 00:54:03 
--	Copyright (c) Microsoft Corporation
--	Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1, v.721)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([id] int,[company_id] int,[investorsName] varchar(4),[typename] varchar(4),[idcard] bigint,[investment] int,[investmentratio] int,[operationperson] varchar(5),[createdate] datetime,[updatedate] sql_variant)
insert [huang]
select 1,2,'姚亚','法人',135461564591,10,10,'admin','2013-01-22',null union all
select 2,2,'曹','股东',1687961987852,90,90,'admin','2013-01-22',null
--------------开始查询--------------------------
SELECT MAX(CASE WHEN company_id =2 THEN InvestorsName ELSE NULL END) InvestorsName,
MAX(CASE WHEN company_id =2 THEN TypeName ELSE NULL END) TypeName,
MAX(CASE WHEN company_id =2 THEN IDcard ELSE NULL END)IDcard,
MAX(CASE WHEN company_id =2 THEN InvestmentRatio ELSE NULL END)Investment,
MAX(CASE WHEN company_id =2 THEN InvestmentRatio ELSE NULL END)InvestmentRatio,
MAX(CASE WHEN company_id =2 THEN InvestorsName ELSE NULL END)InvestorsName1,
MAX(CASE WHEN company_id =2 THEN TypeName ELSE NULL END)TypeName1,
MAX(CASE WHEN company_id =2 THEN IDcard ELSE NULL END)IDcard1,
MAX(CASE WHEN company_id =2 THEN Investment ELSE NULL END)Investment1,
MAX(CASE WHEN company_id =2 THEN InvestmentRatio ELSE NULL END)InvestmentRatio1
FROM    huang
GROUP BY company_id
----------------结果----------------------------
/* 
InvestorsName TypeName IDcard               Investment  InvestmentRatio InvestorsName1 TypeName1 IDcard1              Investment1 InvestmentRatio1
------------- -------- -------------------- ----------- --------------- -------------- --------- -------------------- ----------- ----------------
姚亚            股东       1687961987852        90          90              姚亚             股东        1687961987852        90          90

(1 行受影响)
*/
szm341 2013-02-20
  • 打赏
  • 举报
回复
如果就只有两行数据的话,可以自己手动拼接进去 select a.*,b.* from tb a,tb b where a.id=1 and b.id=2 列名你自己输入
maoxiaoling9598 2013-02-20
  • 打赏
  • 举报
回复
引用 1 楼 yangsh0722 的回复:
第二行的数据搞到第一行对应字段里面?
是的,把第二行的数据在列名后面加个数据区别,然后追加到第一条数据后面
shoppo0505 2013-02-20
  • 打赏
  • 举报
回复
这个不是数据库干的工作,想想在别的地方解决吧。
-Tracy-McGrady- 2013-02-20
  • 打赏
  • 举报
回复
第二行的数据搞到第一行对应字段里面?

22,209

社区成员

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

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