SqlServer行转列

sql:SELECT ParameterName, ParameterValue FROM [dbo].[TABLENAME] WHERE ParameterName IN ('ExportFilePath','SystemSource','RecordsPerFile')  

ParameterNameParameterValue
ExportFilePathE:\ETL_cloud_output\UAT\ExportFiles\
RecordsPerFile25000
SystemSourceCuratedZone

行转列sql:

SELECT ExportFilePath,SystemSource,RecordsPerFile
FROM (SELECT ParameterName, ParameterValue FROM [dbo].[TABLENAME]) PC  
PIVOT(MAX(ParameterValue) FOR ParameterName IN (ExportFilePath,SystemSource,RecordsPerFile)) AS PVT

ExportFilePathSystemSourceRecordsPerFile
E:\ETL_cloud_output\UAT\ExportFiles\CuratedZone25000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在SQL Server中,行转列是一种将表中的行数据转换为列数据的操作。根据提供的引用内容,我们可以使用PIVOT函数来实现行转列操作。首先,创建一个临时表#USER,并插入一些数据。然后使用PIVOT函数将科目列转换为新的列名,并将分数作为对应列的值。最后,使用GROUP BY语句按照姓名进行分组,并使用MAX函数获取每个科目的最大值。下面是一个示例的行转列的SQL查询语句: CREATE TABLE #USER ( name NVARCHAR(100), 科目 NVARCHAR(100), 分数 DECIMAL(18,2) ) INSERT INTO #USER (name, 科目, 分数) VALUES ('张三', '语文', 100), ('张三', '英语', 80), ('张三', '数学', 60), ('张三', '物理', 70) SELECT newtemp.name, MAX(newtemp.语文) 语文, MAX(newtemp.英语) 英语, MAX(newtemp.数学) 数学, MAX(newtemp.物理) 物理 FROM #USER s PIVOT ( MAX(分数) FOR 科目 IN (语文, 英语, 数学, 物理) ) AS newtemp GROUP BY newtemp.name 这样的处理方法有助于简化前后端的处理,直接查询转换后的固定列和实体即可,无需再编写大量的特殊处理方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SQL Server 行转列](https://blog.csdn.net/qq_45619623/article/details/126529707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值