场景:行数据的某列值想作为字段列显示
1、效果如下
2、解决方案
使用pivot进行行转列,以及结合分组
3、代码如下
1
2
3
4
5
6
7
8
|
select * from ( select DeptName,InputCode from FWD_Department group by DeptName,InputCode ) as a pivot( max (InputCode) for DeptName in ([随访中心],[全院],[家庭化产房],[妇科二],妇科一) ) piv |
创建表:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
USE [test] GO /****** Object: Table [dbo].[FWD_Department] Script Date : 2022/3/11 14:50:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[FWD_Department]( [id] [ int ] IDENTITY(1,1) NOT NULL , [DeptName] [ varchar ](50) NOT NULL , [InputCode] [ nchar ](10) NULL , CONSTRAINT [PK_one] PRIMARY KEY CLUSTERED ( [DeptName] ASC ) WITH (PAD_INDEX = OFF , STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF , ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON ) ON [ PRIMARY ] ) ON [ PRIMARY ] GO SET ANSI_PADDING OFF GO |
表记录添加:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
insert into one(DeptName,InputCode) values ( '随访中心' , 'SFZX' ) insert into one(DeptName,InputCode) values ( '全院' , 'QY' ) insert into one(DeptName,InputCode) values ( '家庭化产房' , 'JTHCF' ) insert into one(DeptName,InputCode) values ( '妇科二' , 'FKE' ) insert into one(DeptName,InputCode) values ( '妇科一' , 'FKY' ) |
到此这篇关于Sql Server中实现行数据转为列显示的文章就介绍到这了,更多相关Sql Server行转列内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.51cto.com/u_15288318/5157181