小5聊Sql Server进阶之行数据转为列显示

Posted 小5聊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小5聊Sql Server进阶之行数据转为列显示相关的知识,希望对你有一定的参考价值。

场景:行数据的某列值想作为字段列显示

1、效果如下

2、解决方案

使用pivot进行行转列,以及结合分组

3、代码如下

select * from(
    select DeptName,InputCode
    from FWD_Department
    group by DeptName,InputCode
) as a
pivot(
  max(InputCode) for DeptName in([随访中心],[全院],[家庭化产房],[妇科二],妇科一)
) piv

  • 创建表
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


  •  表记录添加
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')

以上是关于小5聊Sql Server进阶之行数据转为列显示的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver将一行数据转为一列显示,怎么实现

小5聊sql server 分页和分组-row_number()和over()rank()和over()的小区别

小5聊Sql Server 2019数据库之清空服务器登录名下拉方法

如何将行旋转为列,并按过去 7 天显示 - SQL SERVER

小5聊Sql Server基础之统计库龄语句,仅作为语句使用

小5聊Sql Server基础使用之SHOWPLAN permission denied in database