实际工作中的一些操作
大家好,我是你们的好朋友程序员:铭文
先简单的说下:今天的工作要写一个列转行的操作,好久没写这个方法了。不
太熟悉了,今天我就来给大家写一些行专列,列转行的操作:
一.列转行
ps:列转行用到的函数就是:unpivot函数可以快速实现列转行,
但是可读性会下降一点但是整体的简洁度会上升,这个函数在
**08以及以上版本的sqlservice**中才可以使用
1.
创建表的sql 我就不写了浪费时间,下面我直接来写这个sql语句:我们需要用的函数也就是:unpivot
上代码:
select [UserID],[UserName],[IsLocked]= value,[CreateUserID]=keys FROM [DCMP_DevOps].[dbo].[tb_AdminUser]
unpivot
(
value for keys in([Password],[RealName])
)
up
上注释图片
二.行转列
方法1:使用Case when 方式
这种方法就是判断:
SELECT [Password]
,max(CASE WHEN [RealName]='Admin' THEN Telephone END) as 'Admin'
,max(CASE WHEN [RealName]='刘某人' THEN Telephone END) as '刘某人'
FROM [DCMP_DevOps].[dbo].[tb_AdminUser]
GROUP BY [Password]
上图片介绍:
方法2:使用PIVOT 关键字
这种方法就是判断:
SELECT [Password],T.刘某人,t.Admin
FROM [DCMP_DevOps].[dbo].[tb_AdminUser]
PIVOT(max([Telephone]) FOR [RealName] IN("Admin","刘某人")) AS T