CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

如何用SQL语句把表的字段的值变成表的字段?

楼主sgucxc0(ben)2005-04-18 21:35:53 在 MS-SQL Server / 基础类 提问

例如:  
  表W:  
    姓名     部门     //两个字段  
    张三     部门一//字段的值  
    李四     部门二  
   
  要求用SQL语句得出如下结果:  
    姓名     部门一     部门二     //字段  
    张三       是  
    李四                       是 问题点数:50、回复次数:8Top

1 楼talantlee(小刀(bluedagger.cn))回复于 2005-04-18 21:41:51 得分 15

經典的行列轉換問題  
  ----這裡的表為tablea(name,a,b)     ---以a開始到b進行行列轉換  
  declare   @a   varchar(1000)  
  set   @a='select   name   '  
  select   @a=@a+',sum(case   when   a='''+a+'''   then   b   end)'+'   as   '+   a   ----這裡sum改為min或max結果一樣  
  from   (select   distinct   a   from   TableA)T1  
  set   @a=@a+'   from   TableA     group   by   name'  
  --exec(@a)  
  print   (@a)  
  select   name   ,sum(case   when   a='andy   '   then   b   end)   as   andy   ,sum(case   when   a='fenlam'   then   b   end)   as   fenlam   from   TableA     group   by   name  
  Top

2 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-18 21:44:43 得分 20

 
  --建立测试环境  
  Create   table   W  
  (姓名   Nvarchar(10),  
    部门   Nvarchar(10))  
  GO  
  --插入数据  
  Insert   W   Values(N'张三',     N'部门一')  
  Insert   W   Values(N'李四',     N'部门二')  
  GO  
  --测试  
  Select    
  姓名,  
  (Case   When   A.部门=N'部门一'   Then   N'是'   Else   Null   End   )As   部门一,  
  (Case   When   A.部门=N'部门二'   Then   N'是'   Else   Null   End   )As   部门二    
  from   W   A  
  --删除测试环境  
  Drop   table   W  
  GO  
  --结果  
  /*  
  姓名 部门一 部门二  
  张三 是 NULL  
  李四 NULL 是  
  */  
  Top

3 楼funsuzhou(☆【处变不惊】☆)回复于 2005-04-18 22:13:15 得分 0

楼上,为什么要加N?不加也可以啊Top

4 楼funsuzhou(☆【处变不惊】☆)回复于 2005-04-18 22:14:25 得分 0

这样也可以啊,但请赐教  
   
  --建立测试环境  
  Create   table   W  
  (姓名   Nvarchar(10),  
    部门   Nvarchar(10))  
  GO  
  --插入数据  
  Insert   W   Values('张三',     '部门一')  
  Insert   W   Values('李四',     '部门二')  
  GO  
  --测试  
  Select    
  姓名,  
  (Case   When   A.部门='部门一'   Then   '是'   Else   Null   End   )As   部门一,  
  (Case   When   A.部门='部门二'   Then   '是'   Else   Null   End   )As   部门二    
  from   W   A  
  --删除测试环境  
  Drop   table   W  
  GOTop

5 楼hawk_js(鹰)回复于 2005-04-19 08:57:50 得分 0

Select    
  姓名,  
  (Case   When   A.部门='部门一'   Then   '是'   Else   Null   End   )As   部门一,  
  (Case   When   A.部门='部门二'   Then   '是'   Else   Null   End   )As   部门二    
  from   W   A  
  Top

6 楼steelmqb1(小N)回复于 2005-04-19 10:42:06 得分 0

很好a,upTop

7 楼xluzhong(Ralph)回复于 2005-04-19 11:37:45 得分 15

http://blog.csdn.net/xluzhong/articles/349046.aspxTop

8 楼sgucxc0(ben)回复于 2005-04-23 11:48:14 得分 0

谢谢各位的点解!Top

相关问题

  • 求sql语句A表1字段=B表1字段+B表2字段??
  • 求:修改表的一个字段的字段名的sql脚本语句
  • 用sql语句查询数据表中有哪些字段是什么语句?
  • 请问SQL语句如何在两个字段之间新增字段和提取表里字段名称?
  • 大家帮助,写个SQL语句---修改表字段
  • 怎样通过sql语句查询得到表的字段数?
  • 如何用sql语句修改表中字段名称
  • 如何用sql语句,在一个表中追加字段
  • 如何用SQL语句取得表中字段的属性?
  • 怎么用sql语句在access表中增加一个字段

关键词

  • 字段
  • 部门
  • 表
  • tablea
  • 姓名
  • sum
  • 李四
  • case
  • then
  • select

得分解答快速导航

  • 帖主:sgucxc0
  • talantlee
  • paoluo
  • xluzhong

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo