MSSQL实现列数据转换行数据的方法
Autonomous Database 是 Oracle 推出的一种新型云数据库,可以快速和轻松地管理企业数据。MSSQL是微软发布的一款关系型数据库管理系统,可以使用T-SQL、SSIS等多种方式实现数据转换。本文将介绍MSSQL实现列数据转换行数据的一种方法。
以下是一个示例,我们需要将表格中的数据从列转换成行:
表格:
| name | age |
|——-|—–|
| Mike | 20 |
| tony | 25 |
| Alisa | 30 |
我们可以使用以下T-sql语句将其转换为行:
“`sql
SELECT Name, Age FROM
(SELECT name,
SUBSTRING_INDEX(
CONCAT(name, ‘,’, age), ‘,’, -1
) Age
FROM testTable
) AS S
输出:
| Name | Age |
|-------|-----|
| Mike | 20 |
| Tony | 25 |
| Alisa | 30 |
以上这种方法使用CONCAT函数将多个列的数据连接起来,生成一个字符串,再使用SUBSTRING_INDEX函数取出想要的列的数据。
除了上面介绍的T-SQL方法外,我们还可以使用SSIS实现列数据转换行数据。
1. 首先新建一个SSIS工程,然后拖入Data Flow Task,将数据源和目标连接起来。
2. 然后添加一个Derived Column节点Let, 在Expression中接入以下代码:
```sql
[Name] + ", "+ [Age]
设置Name新列的数据类型为String,运行该步骤后,就实现了列信息拼接:
| Name | Age | Name_New|
|——-|—–|———|
| Mike | 20 | Mike, 20|
| Tony | 25 | Tony, 25|
| Alisa | 30 | Alisa, 30|
3. 然后添加另一个Derived Column节点,在Expression中接入以下代码:
“`sql
(DT_STR,50,1252)SUBSTRING(Name_New,0,FINDSTRING(Name_New, “,”,1) -1)
运行该步骤后,就可以实现从拼接后的字段中依据逗号分隔取出列信息:
| Name | Age | Name_New| Name_New1 |
|-------|-----|---------|------------|
| Mike | 20 | Mike, 20| Mike |
| Tony | 25 | Tony, 25| Tony |
| Alisa | 30 | Alisa, 30| Alisa |
4. 最后利用Conditional Split节点将Name_New1列的值重新拆分,将Name和Age分别输出到不同的目标节点,就实现将列信息行数据的转换。
经过上述步骤,我们就可以实现用MSSQL实现列信息转换成行信息的目的。另外,还可以使用PIVOT、UNPIVOT相关函数和其他一些技巧来实现同样的效果。
总之,MSSQL为我们提供了多种实现列数据转换行数据的方法,如T-SQL、SSIS等,尤其是SSIS,能极大地方便我们数据处理的工作。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
当前名称:MSSQL实现列数据转换行数据的方法(mssql列转行)
文章链接:http://www.shufengxianlan.com/qtweb/news15/316165.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联