mysql行转列sql函数
时间: 2023-09-14 13:12:21 浏览: 115
在MySQL中,行转列可以使用多种方法实现。以下是两种常用的方法:
方法1:使用GROUP_CONCAT函数
```sql
SELECT
id,
name,
GROUP_CONCAT(CASE WHEN subject = '语文' THEN score END SEPARATOR '') AS '语文',
GROUP_CONCAT(CASE WHEN subject = '数学' THEN score END SEPARATOR '') AS '数学',
GROUP_CONCAT(CASE WHEN subject = '英语' THEN score END SEPARATOR '') AS '英语'
FROM test1
GROUP BY name;
```
在这个方法中,通过使用GROUP_CONCAT函数将每个科目分数连接成一个字符串,并使用CASE语句将对应科目的分数筛选出来。
方法2:使用SUM和IF函数
```sql
SELECT
id,
name,
SUM(IF(subject = '语文',score,0)) AS '语文',
SUM(IF(subject = '数学',score,0)) AS '数学',
SUM(IF(subject = '英语',score,0)) AS '英语'
FROM test1
GROUP BY name;
```
在这个方法中,使用IF函数对每个科目的分数进行条件判断,如果科目匹配,则返回分数,否则返回0。然后使用SUM函数将每个科目的分数进行求和。
以上就是实现MySQL行转列的两种常用方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [MySQL:行转列、列转行](https://blog.csdn.net/w5761499123/article/details/126211094)[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 ]
阅读全文