SQL Server行转列的什么情况下被用?

数据库 SQL Server
以下的文章主要描述的是SQL Server行转列在什么情况下可能被应用的道,你如果对其有兴趣的话你就可以点击以下的文章进行观看了。

以下的文章主要描述的是SQL Server行转列在什么情况下可能被应用的道,你如果对其有兴趣的话你就可以点击以下的文章进行观看了,以下的文章将会揭开它的神秘面纱,以下的文章将会揭开它的神秘面纱。

有些时候还是要用到SQL Server行转列,比如下面的数据:

一般的表结构大多会这么设计,通过关联查询就可以得出上面的数据(客运量就随便123了,非常时期以防恐怖分子)

 

不用说,大家也明白要得到下面的数据:

列数不多的话一般可以这样,也是网上比较经典的写法

Select 时间,

sum(case when 线路='1号线' then客运量 end) As '1号线' ,

 

sum(case when 线路='2号线' then客运量 end) As '2号线' ,

 

sum(case when 线路='5号线' then客运量 end) As '5号线' ,

 

......

 

Fromtable Group By 时间

 

在SQL Server2005里可以用Pivot关键字来操作,如下:

 

 

  1. declare@Strnvarchar(max)  
  2. set@str='select时间' 
  3. select@str=@str+',['+线路+']'from#Tgroupby线路  
  4. set@str=@str+'FROM( 

 

 

SELECT时间,客运量,线路

 

FROM#T)AST

 

PIVOT(sum(客运量)FOR线路IN

 

('

 

select@str=@str+'['+线路+'],'from#Tgroupby线路

 

set@str=left(@str,Len(@str)-1)

 

set@str=@str+'))ASthePivot

 

ORDERBY时间'

 

declare@T1table(datedatetime,一号线float,二号线float,五号线float,十号线float,十三号线float,八通线float,奥运支线float,机场线float)

 

  1. INSERTINTO@T1exec(@str)  
  2. SELECT*FROM@T1  
  3. droptable#T 

 

 

SQL Server行转列上面的语句如果运行提示不支持pivot关键字的话(一般SQL2000库导入到SQL2005可能出现这问题),执行下这句:EXEC sp_dbcmptlevel 数据库名称,90

为了方便看,字段改成中文了,其中#T表的数据就是最上面***张图的数据(只要基础数据源组织成这样的就行)

把处理后的数据存放在表变量@T1中(当然临时表也行),因为还要和其他表进行关联,导出一张大表,如下(表的部分列):

 大致就这样吧

处理的方式应该还有其它的,仅供参考。

 

【编辑推荐】

  1. SQL Server2000连接中出现错误的原因是什么?
  2. SQL Server开发中10个常见问题有哪些?
  3. SQL Server代码编辑工具的详细介绍
  4. 巧妙SQL Server 文件大小的步骤
  5. SQL Server unicode 支持的具体体现

 

责任编辑:佚名 来源: TT安全
相关推荐

2023-11-23 23:52:06

options请求浏览器

2013-09-12 10:41:39

VDI部署

2010-07-20 12:46:23

SQL Server聚

2013-07-29 14:50:43

API

2024-11-07 12:08:27

微服务协议通信

2015-06-01 06:39:18

JavaJava比C++

2020-11-18 09:26:52

@property装饰器代码

2021-06-04 09:17:13

JavaScriptBoolean函数

2014-11-03 09:52:25

DNSUDPTCP

2024-01-09 11:39:47

数字化转型数字优先企业

2015-06-29 14:23:13

JavaC++慢很多

2013-09-23 10:05:50

2023-05-18 08:38:13

Java锁机制

2010-10-22 17:26:55

SQL Server删

2009-03-05 10:55:00

企业无线Wi-Fi

2010-06-30 10:55:13

SQL Server日

2021-09-14 07:26:25

雪花算法ID

2010-04-14 17:46:10

Oracle数据库

2010-10-22 17:22:05

sql server删

2022-07-20 08:07:21

数据库分布式数据库
点赞
收藏

51CTO技术栈公众号