dkfr.net
当前位置:首页 >> sqlsErvEr 怎么列转行 >>

sqlsErvEr 怎么列转行

PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库...

sql server 请参阅下面的代码,列转行 sqlserver列转行方法分享 以下例子适用 sqlserver 2005版本及以上 create table A ( info1 varchar(30), [2012] int, [2008] int, [2018] int, [2013] int ) go insert into A values('A',8,null,null,20) i...

SQL Server 2005之后支持pivot关键字。 select year,[1],[2],[3],[4] from 表A pivot(max(num) for [month] in ([1],[2],[3],[4])) as pvt SQL Server 2000以及之前版本,可以参考imlees的方法。

DROP TABLE A CREATE table A( id varchar(10) ) insert into A SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 第一种: DECLARE @STR VARCHAR(8000) SELECT @STR=ISNULL(@STR+',','')+id FROM (SELECT DISTINCT id FROM A)AS T SELEC...

第一:你的时间维度表基本没有意义,微软SSIS中心认为时间维度至少由日期构成主键。可以认为是最小基本业务颗粒。 来个Sample,更复杂的在我空间里。但是道理是一样的。都是借助动态SQL和一些函数。 ------------------------------------------...

通用的办法是用动态sql解决: declare @sql varchar(2000);set @sql='select ''';select @sql=@sql+列名+',' from 表名;select @sql=left(@sql,len(@sql)-1)+''''exec(@sql);此外,SQL Server2005以上版本可以用XML Path解决。 SELECT 列名+',' ...

select * from A_14072201 ID USERID46859 3813046859 88846811 3813046811 3776146470 3783646470 3783646430 3783646430 37836select ID,USERID from A_14072201 where ID in (select ID from (select ID,USERID from A_14072201 group by ID,...

set nocount on ; declare @T table(ID int) insert @T select 1 insert @T select 2 insert @T select 3 insert @T select 4 insert @T select 5 insert @T select 6 insert @T select 7 insert @T select 8 insert @T select 9 insert @T sele...

用unpivot , pivot 百度一下这个标题 (SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行),cnblogs有比较清楚的文章

select case when tab1.tutorld is null then tab2.tutorld else tab1.tutorld end,tab1.菜品1,tab2.菜品2 from (select tutorld,dishname as '菜品1' from 表格名称 where dishtype = 1) tab1 full join (select tutorld,dishname as '菜品2' f...

网站首页 | 网站地图
All rights reserved Powered by www.dkfr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com