承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

SQLServer中将列数据转换为行

管理员 2023-06-14 08:27:19 互联网圈 15 ℃ 0 评论 1983字 收藏

SQLServer中将列数据转换为行

数据

SQL Server提供了一种将列数据转换为行数据的方法,该方法可以根据个人需要来产生新的变换结果。在普通情况下,数据都被组织在列中,每列都有自己的值,而没有一行全是相同的数据,但是,很多情况需要将一组数据每行表现出来,以满足复杂数据分析的需要,这时候就需要使用将列转行的SQL语句。

对SQL Server列转行,一般使用的语句以下:

`SELECT * FROM 原表

UNPIVOT (列值 FOR 列名 IN(列1,列2,…)) AS 变换表`

例如,有一个表 scott_test,有id,col_name列,和4个数据列(data1,data2,data3,data4):

| id | col_name | data1 | data2 | data3 | data4 |

| :–: | :–: | :–: | :–: | :–: | :–: |

| 1 | apple | 20 | 5 | 10 | 7 |

| 2 | orange | 25 | 11 | 9 | 8 |

将以上这个表列转行,语句以下:

`SELECT id,col_name,data

FROM scott_test

UNPIVOT (data FOR col_data IN(data1,data2,data3,data4)) AS unpvt`

履行该语句后得到的结果以下:

| id | col_name | col_data | data |

| :–: | :–: | :–: | :–: |

| 1 | apple | data1 | 20 |

| 1 | apple | data2 | 5 |

| 1 | apple | data3 | 10 |

| 1 | apple | data4 | 7 |

| 2 | orange | data1 | 25 |

| 2 | orange | data2 | 11 |

| 2 | orange | data3 | 9 |

| 2 | orange | data4 | 8 |

从上面的结果可以看出,每行的数据可以用一个data字段表示出来,而col_data列则表示data字段原来所在的数据列。

总而言之,SQL Server中可使用UNPIVOT语句将一组列数据转换为行数据,这样可让数据更加清楚、易读,也能够更好地进行数据分析。

文章来源:丸子建站

文章标题:SQLServer中将列数据转换为行

https://www.wanzijz.com/view/55743.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信