| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3272 人关注过本帖
标题:[求助]怎么能让查询结果中的行列互换
只看楼主 加入收藏
networkangle
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2005-4-22
收藏
 问题点数:0 回复次数:5 
[求助]怎么能让查询结果中的行列互换
怎么能让查询结果中的行列互换

例如 select id,name,age,sex from person;
本来显示是 id name age sex
01 xiao 21 男
  02 li  22 女
现在我想让 id 01 02
  name xiao li
  age 21 22
sex 男 女

请问用SQL怎么实现?
搜索更多相关主题的帖子: 结果中 行列 SQL name age 
2007-05-19 23:09
dwt
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-10-10
收藏
得分:0 
我也不知道


时间可以让人忘记一切,也可以让人记住一切,但是有时候我们缺的就是时间,所以一定要把握每分每秒。
2007-10-17 10:52
比蜗牛快些
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:124
专家分:0
注 册:2007-4-16
收藏
得分:0 
没有做过,头一回遇见有人想这样做

地球人的缺点与恶习集一身,小心感染不良恶习
2007-10-21 21:34
liuye
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-10-18
收藏
得分:0 
这个没做过
2007-10-23 16:59
偶是偶
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-12
收藏
得分:0 

好强的想象力

2007-10-26 10:52
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
收藏
得分:0 

CREATE TABLE T
(
ID VARCHAR(20),
Name VARCHAR(20),
Age INT,
Sex VARCHAR(20)
)

INSERT INTO T
SELECT '01 ', 'xiao ',21, '男 ' UNION ALL
SELECT '02 ', 'li ',22, '女 '
select * from t

DECLARE @sql VARCHAR(8000)
SET @sql = ' '
SELECT @sql =@sql+ ',( '+CASE WHEN PATINDEX( '%[^0-9]% ',COL1) >0 THEN RIGHT(COL1,2) ELSE COL1 END+ ') = MIN(CASE WHEN COL1 = ' ' '+CASE WHEN PATINDEX( '%[^0-9]% ',COL1) >0 THEN RIGHT(COL1,2) ELSE COL1 END+ ' ' ' THEN col2 END) '
FROM
(
SELECT id=0,col1=id,col2=Name FROM t
UNION ALL
SELECT id=1,col1=id,CAST(AGE AS VARCHAR) FROM t
UNION ALL
SELECT id=2,col1=id,SEX FROM t
UNION ALL
SELECT 0, '00id ', 'name '
UNION ALL
SELECT 1, '00id ', 'age '
UNION ALL
SELECT 2, '00id ', 'sex '
) A GROUP BY COL1

SET @sql = STUFF(@sql,1,1, ' ')

EXEC ( 'SELECT '+@sql+ '
FROM
(
SELECT id=0,col1=id,col2=Name FROM t
UNION ALL
SELECT id=1,col1=id,CAST(AGE AS VARCHAR) FROM t
UNION ALL
SELECT id=2,col1=id,SEX FROM t
UNION ALL
SELECT 0, ' 'id ' ', ' 'name ' '
UNION ALL
SELECT 1, ' 'id ' ', ' 'age ' '
UNION ALL
SELECT 2, ' 'id ' ', ' 'sex ' '
) A GROUP BY ID '
)

DROP TABLE T


你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-10-27 17:05
快速回复:[求助]怎么能让查询结果中的行列互换
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072377 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved