sqlserver 行转列
时间: 2023-10-06 20:13:19 浏览: 237
SqlServer行转列
在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 ]
阅读全文