当前位置: 首页 > news >正文

上海博大园林建设发展有限公司网站网站改版降权

上海博大园林建设发展有限公司网站,网站改版降权,无锡企业网银,网站建设如何选择PIVOT用于将列值旋转为列名#xff08;即行转列#xff09;#xff0c;在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是#xff1a;PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法#xff1a; table_source PIVOT( 聚合函数#xff08;value_col…PIVOT用于将列值旋转为列名即行转列在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法 table_source PIVOT( 聚合函数value_column FOR pivot_column IN(column_list) )   UNPIVOT用于将列明转为列值即列转行在SQL Server 2000可以用UNION来实现 完整语法 table_source UNPIVOT( value_column FOR pivot_column IN(column_list) )   注意PIVOT、UNPIVOT是SQL Server 2005 的语法使用需修改数据库兼容级别 在数据库属性-选项-兼容级别改为   90   典型实例 一、行转列 1、建立表格 ifobject_id(tb)isnotnulldroptabletbgocreatetabletb(姓名varchar(10),课程varchar(10),分数int)insertintotbvalues(张三,语文,74)insertintotbvalues(张三,数学,83)insertintotbvalues(张三,物理,93)insertintotbvalues(李四,语文,74)insertintotbvalues(李四,数学,84)insertintotbvalues(李四,物理,94)goselect*fromtbgo姓名 课程 分数---------- ---------- -----------张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94 2、使用SQL Server 2000静态SQL--cselect姓名,max(case课程when语文then分数else0end)语文,max(case课程when数学then分数else0end)数学,max(case课程when物理then分数else0end)物理fromtbgroupby姓名姓名 语文 数学 物理---------- ----------- ----------- -----------李四 74 84 94张三 74 83 933、使用SQL Server 2000动态SQL--SQL SERVER 2000动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)--变量按sql语言顺序赋值declaresqlvarchar(500)setsqlselect姓名selectsqlsql,max(case课程when 课程 then分数else 0 end)[课程]from(selectdistinct课程fromtb)a--同from tb group by课程默认按课程名排序setsqlsql from tb group by姓名exec(sql)--使用isnull(),变量先确定动态部分declaresqlvarchar(8000)selectsqlisnull(sql,,) max(case课程when 课程 then分数else 0 end) [课程]from(selectdistinct课程fromtb)asa setsqlselect姓名,sql from tb group by姓名exec(sql)姓名 数学 物理 语文---------- ----------- ----------- -----------李四 84 94 74张三 83 93 744、使用SQL Server 2005静态SQLselect*fromtb pivot(max(分数)for课程in(语文,数学,物理))a5、使用SQL Server 2005动态SQL--使用stuff()declaresqlvarchar(8000)setsql --初始化变量sqlselectsqlsql,课程fromtbgroupby课程--变量多值赋值setsqlstuff(sql,1,1,)--去掉首个,setsqlselect * from tb pivot (max(分数) for课程in (sql))aexec(sql)--或使用isnull()declaresqlvarchar(8000)–-获得课程集合selectsqlisnull(sql,,)课程fromtbgroupby课程 setsqlselect * from tb pivot (max(分数) for课程in (sql))aexec(sql)二、行转列结果加上总分、平均分1、使用SQL Server 2000静态SQL--SQL SERVER 2000静态SQLselect姓名,max(case课程when语文then分数else0end)语文,max(case课程when数学then分数else0end)数学,max(case课程when物理then分数else0end)物理,sum(分数)总分,cast(avg(分数*1.0)asdecimal(18,2))平均分fromtbgroupby姓名姓名 语文 数学 物理 总分 平均分---------- ----------- ----------- ----------- -----------李四 74 84 94 252 84.00张三 74 83 93 250 83.332、使用SQL Server 2000动态SQL--SQL SERVER 2000动态SQLdeclaresqlvarchar(500)setsqlselect姓名selectsqlsql,max(case课程when 课程 then分数else 0 end)[课程]from(selectdistinct课程fromtb)asetsqlsql,sum(分数)总分,cast(avg(分数*1.0) as decimal(18,2)) 平均分from tb group by姓名exec(sql)3、使用SQL Server 2005静态SQLselectm.*,n.总分,n.平均分from(select*fromtb pivot(max(分数)for课程in(语文,数学,物理))a)m,(select姓名,sum(分数)总分,cast(avg(分数*1.0)asdecimal(18,2))平均分fromtbgroupby姓名)nwherem.姓名n.姓名4、使用SQL Server 2005动态SQL--使用stuff()--declaresqlvarchar(8000)setsql --初始化变量sqlselectsqlsql,课程fromtbgroupby课程--变量多值赋值--同select sql sql ,课程from (select distinct课程from tb)asetsqlstuff(sql,1,1,)--去掉首个,setsqlselect m.* , n.总分,n.平均分from(select * from (select * from tb) a pivot (max(分数) for课程in (sql)) b) m ,(select姓名,sum(分数)总分, cast(avg(分数*1.0) as decimal(18,2))平均分from tb group by姓名) nwhere m.姓名 n.姓名exec(sql)--或使用isnull()declaresqlvarchar(8000)selectsqlisnull(sql,,)课程fromtbgroupby课程setsqlselect m.* , n.总分,n.平均分from(select * from (select * from tb) a pivot (max(分数) for课程in (sql)) b) m ,(select姓名,sum(分数)总分, cast(avg(分数*1.0) as decimal(18,2))平均分from tb group by姓名) nwhere m.姓名 n.姓名exec(sql)二、列转行1、建立表格ifobject_id(tb)isnotnulldroptabletbgocreatetabletb(姓名varchar(10),语文int,数学int,物理int)insertintotbvalues(张三,74,83,93)insertintotbvalues(李四,74,84,94)goselect*fromtbgo姓名 语文 数学 物理---------- ----------- ----------- -----------张三 74 83 93李四 74 84 942、使用SQL Server 2000静态SQL--SQL SERVER 2000静态SQL。select*from( select姓名,课程语文,分数语文fromtb unionall select姓名,课程数学,分数数学fromtb unionall select姓名,课程物理,分数物理fromtb) torderby姓名,case课程when语文then1when数学then2when物理then3end姓名 课程 分数---------- ---- -----------李四 语文 74李四 数学 84李四 物理 94张三 语文 74张三 数学 83张三 物理 932、使用SQL Server 2000动态SQL--SQL SERVER 2000动态SQL。--调用系统表动态生态。declaresqlvarchar(8000)selectsqlisnull(sql union all ,) select姓名, [课程]quotename(Name,) , [分数] quotename(Name) from tbfromsyscolumnswhereName!姓名andIDobject_id(tb)--表名tb不包含列名为姓名的其他列orderbycolidexec(sql order by姓名)go3、使用SQL Server 2005静态SQL--SQL SERVER 2005动态SQLselect姓名,课程,分数fromtb unpivot (分数for课程in([语文],[数学],[物理])) t4、使用SQL Server 2005动态SQL--SQL SERVER 2005动态SQLdeclaresqlnvarchar(4000)selectsqlisnull(sql,,)quotename(Name)fromsyscolumnswhereIDobject_id(tb)andNamenotin(姓名)orderbyColidsetsqlselect姓名,[课程],[分数] from tb unpivot ([分数] for [课程] in(sql))bexec(sql) 转载于:https://www.cnblogs.com/tangqs/archive/2012/02/11/2347146.html
http://wiki.neutronadmin.com/news/336543/

相关文章:

  • 百度上如何做优化网站上海市企业服务云网站
  • 网站建设与管理案例...免费咨询法律援助该打什么电话
  • 网站开发实战网络课个人网站html源码
  • 合肥做检查军大网站小程序是怎么开发的
  • 收费网站解决方案网站怎么设计制作
  • 用html做的网站加背景音乐企业运营公司
  • 网站建设公司的公司浙江省建设银行网站首页
  • 做静态网站d微信官方小程序开发工具
  • 手表网站西安做网站微信公司哪家好
  • 网站备案需要建设好网站吗建设电瓶车官方网站
  • 视频网站后台登陆wordpress简洁cms主题
  • 网站换稳定服务器做企业网站用drupal7
  • 和文化有关的吉网站建设模板企业网站网站建设公司
  • 做购物平台网站客户体验活动开发公司总经理竞聘报告
  • 网站怎么添加流量肉多各种地方做的网站
  • 网站开发属于哪个大学专业阿克苏建设局网站
  • 马来西亚网站建设海外网站推广公司
  • 北京代建网站恒丰建设集团有限公司 网站
  • 网站没备案怎么做加速商业空间设计有限公司
  • 网站后台程序开发成交型网站制作
  • 涵江网站建设天津 网站建设
  • wordpress 音乐站外贸流程ppt
  • 微信网站设计价格静态网站 搜索功能
  • 汽车网站营销赣州人才网官网招聘信息
  • 网站怎样运营使用cdn做网站内容加速
  • 企业模板网站建设wordpress使用邮箱验证
  • 柳州专业网站优化北京环球影城可以带水果吗
  • 用jsp做留言板网站游戏开发可以自学吗
  • 做推送的网站有哪些做网站还有前景么
  • 网站建设的目的模板淮安市哪里有做网站