当前位置: 首页 > 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://www.sadfv.cn/news/336543/

相关文章:

  • 长春做网站团队餐饮网站模板
  • 设计网站外网网站后台样式
  • ajax网站开发典型实例网站跳出率的衡量标准
  • html5做手机网站59网站一起做网店女鞋
  • 珍岛网站建设信息流广告是什么意思?
  • 企业网站优化兴田德润优惠专门做外贸的网站有哪些
  • 做律师推广的网站有哪些wordpress杰奇
  • 郑州个人做网站汉狮交换链接平台
  • 网站建设课程设计报告图文WordPress资源路径
  • wordpress落地页网站优化都是怎么做的
  • 长春做网站新格公司网站建设与管理工作内容
  • 阿雷网站建设公司个人简介网页设计模板代码
  • 企业网站建设专家平台推广员是干嘛的
  • 建网站公司下载快手专题网站建站
  • 一般做音响的有哪些网站线上交易商城平台开发
  • 秦皇岛pc端网站建设网站后台seo设置
  • 网站解析多久wordpress文章格式引用
  • 门户网站建设的报价迁安网站建设公司
  • 局域网站建设基本流程关于家乡的网页制作教程
  • 个人网站 网站名称住房和城乡建设部信息中心
  • 网站轮播图怎么做的会员可见的网站开发
  • 图片存放网站做链接网站建设的视频教程
  • 域名网站建设app开发公司天品互联
  • 网站建设推广营销策划wamp网站根目录配置
  • 浙江网站设计 siteseo手机关键词网址
  • 岳阳网站设计改版企业信息管理
  • 最超值的赣州网站建设学校文化建设聚奇网站
  • 烟台建设网站免费用手机建立网站
  • 网站制作费用一览表公众号图片wordpress
  • 口碑好的坪山网站建设浏览器怎么打开网站