文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» MySQL & PostgreSQL & Sybase » 急!!!!!!求一SQL语句,在线等!!!!       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [原创] 急!!!!!!求一SQL语句,在线等!!!!  ( 查看:379  回复:2 )   
 
amwip110
新新人类  点击可查看详细



帖子 17
精华 0
无忧币 35
积分 64
阅读权限 20
注册日期 2006-10-11
最后登录 2008-5-6 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-2-24 16:16   标题:急!!!!!!求一SQL语句,在线等!!!!
上一帖 |
求助,在线等!!!!!
设有一表:
A
  Name      Subject      Score
  张三      语文         80
  张三      数学         70
  张三      英语         90
  李四      语文         65
  李四      数学         80
  李四      英语         85
  王五      语文         90
  王五      数学         75
  王五      英语         65
现在要查询输出的格式为:
Name      语文        数学      英语  
张三      80           70       90
'''''''
''''''
王五      90           75        65
怎么用一条SQL语句完成,数据库为Sybase的!!!!!



网络工程师到底该不该去考CCIE认证?
2008-2-24 16:161楼
[ 顶部 ]
 
lllenxue
副版主  点击可查看详细


十二生肖之狗   双子座   行业勋章   技术勋章   诚信兄弟  
帖子 701
精华 3
无忧币 2912
积分 1089
阅读权限 140
注册日期 2007-3-23
最后登录 2008-6-10 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-2-27 08:03 
SQL语句之普通行列转换

假设有张学生成绩表(tb_rowtocol)如下
Name Subject Result
张三 语文  73
张三 数学  83
张三 物理  93
李四 语文  74
李四 数学  84
李四 物理  94

想变成
姓名 语文 数学 物理
张三 73  83  93
李四 74  84  94

declare @sql varchar(4000)
set @sql = 'select Name as ' + '姓名'
select @sql = @sql + ' , sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from rowtocol) as a
set @sql = @sql + ' from rowtocol group by name'
exec(@sql)

如果上述两表互相换一下:即
表名(cj)
姓名 语文 数学 物理
张三 73  83  93
李四 74  84  94

想变成

Name Subject Result
张三 语文  73
张三 数学  83
张三 物理  93
李四 语文  74
李四 数学  84
李四 物理  94

select 姓名 as Name,'语文' as Subject,语文 as Result from CJ union
select 姓名 as Name,'数学' as Subject,数学 as Result from CJ union
select 姓名 as Name,'物理' as Subject,物理 as Result from CJ
order by 姓名 desc



网络工程师到底该不该去考CCIE认证?
2008-2-27 08:032楼
[ 顶部 ]
 
lllenxue
副版主  点击可查看详细


十二生肖之狗   双子座   行业勋章   技术勋章   诚信兄弟  
帖子 701
精华 3
无忧币 2912
积分 1089
阅读权限 140
注册日期 2007-3-23
最后登录 2008-6-10 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-2-27 10:31 
简单的行转列问题:

  示例表:


     id sid course result

  1 2005001 语文 80.0

  2 2005001 数学 90.0

  3 2005001 英语 80.0

  4 2005002 语文 56.0

  5 2005002 数学 69.0

  6 2005002 英语 89.0

  执行:

  select sid,语文=isnull(sum(case course when '语文' then result end),0),
  数学=isnull(sum(case course when '数学' then result end),0),
  英语=isnull(sum(case course when '英语' then result end),0)
  from result
  group by sid
  order by sid


  得出结果:

  sid 语文 数学 英语

  2005001 80.0 90.0 80.0

  2005002 56.0 69.0 89.0



我在sybase12.5 ,pb6.5试验能行



网络工程师到底该不该去考CCIE认证?
2008-2-27 10:313楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号