新聞中心
MSSQL實現(xiàn)列數(shù)據(jù)轉(zhuǎn)換行數(shù)據(jù)的方法

Autonomous Database 是 Oracle 推出的一種新型云數(shù)據(jù)庫,可以快速和輕松地管理企業(yè)數(shù)據(jù)。MSSQL是微軟發(fā)布的一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以使用T-SQL、SSIS等多種方式實現(xiàn)數(shù)據(jù)轉(zhuǎn)換。本文將介紹MSSQL實現(xiàn)列數(shù)據(jù)轉(zhuǎn)換行數(shù)據(jù)的一種方法。
以下是一個示例,我們需要將表格中的數(shù)據(jù)從列轉(zhuǎn)換成行:
表格:
| name | age |
|——-|—–|
| Mike | 20 |
| tony | 25 |
| Alisa | 30 |
我們可以使用以下T-sql語句將其轉(zhuǎn)換為行:
“`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函數(shù)將多個列的數(shù)據(jù)連接起來,生成一個字符串,再使用SUBSTRING_INDEX函數(shù)取出想要的列的數(shù)據(jù)。
除了上面介紹的T-SQL方法外,我們還可以使用SSIS實現(xiàn)列數(shù)據(jù)轉(zhuǎn)換行數(shù)據(jù)。
1. 首先新建一個SSIS工程,然后拖入Data Flow Task,將數(shù)據(jù)源和目標連接起來。
2. 然后添加一個Derived Column節(jié)點Let, 在Expression中接入以下代碼:
```sql
[Name] + ", "+ [Age]
設(shè)置Name新列的數(shù)據(jù)類型為String,運行該步驟后,就實現(xiàn)了列信息拼接:
| Name | Age | Name_New|
|——-|—–|———|
| Mike | 20 | Mike, 20|
| Tony | 25 | Tony, 25|
| Alisa | 30 | Alisa, 30|
3. 然后添加另一個Derived Column節(jié)點,在Expression中接入以下代碼:
“`sql
(DT_STR,50,1252)SUBSTRING(Name_New,0,FINDSTRING(Name_New, “,”,1) -1)
運行該步驟后,就可以實現(xiàn)從拼接后的字段中依據(jù)逗號分隔取出列信息:
| Name | Age | Name_New| Name_New1 |
|-------|-----|---------|------------|
| Mike | 20 | Mike, 20| Mike |
| Tony | 25 | Tony, 25| Tony |
| Alisa | 30 | Alisa, 30| Alisa |
4. 最后利用Conditional Split節(jié)點將Name_New1列的值重新拆分,將Name和Age分別輸出到不同的目標節(jié)點,就實現(xiàn)將列信息行數(shù)據(jù)的轉(zhuǎn)換。
經(jīng)過上述步驟,我們就可以實現(xiàn)用MSSQL實現(xiàn)列信息轉(zhuǎn)換成行信息的目的。另外,還可以使用PIVOT、UNPIVOT相關(guān)函數(shù)和其他一些技巧來實現(xiàn)同樣的效果。
總之,MSSQL為我們提供了多種實現(xiàn)列數(shù)據(jù)轉(zhuǎn)換行數(shù)據(jù)的方法,如T-SQL、SSIS等,尤其是SSIS,能極大地方便我們數(shù)據(jù)處理的工作。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章標題:MSSQL實現(xiàn)列數(shù)據(jù)轉(zhuǎn)換行數(shù)據(jù)的方法(mssql列轉(zhuǎn)行)
網(wǎng)站路徑:http://www.fisionsoft.com.cn/article/djsiigs.html


咨詢
建站咨詢
