日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MSSQL如何優(yōu)雅合并多行記錄(mssql 合并多行)

在常用的關(guān)系型數(shù)據(jù)庫中,經(jīng)常需要去實(shí)現(xiàn)數(shù)據(jù)記錄合并,比如MSSQL。但是,如何優(yōu)雅的去實(shí)現(xiàn)多行記錄的快速靈活合并?

首先,可以使用CTE,通過CTE來實(shí)現(xiàn)多行記錄的快速靈活合并。

以下是一個示例,可以使用CTE對Table1合并成一行:

–使用CTE進(jìn)行數(shù)據(jù)合并

WITH CTE As

(

SELECT

ROW_NUMBER() OVER (PARTITION BY p.CompanyID, p.OrderNumber ORDER BY p.OrderNumber) AS Rn,

p.CompanyID,

p.OrderNumber,

p.ProductName

FROM Table1 As p

)

SELECT

CompanyID,

OrderNumber,

STUFF((

SELECT ‘,’ + ProductName

FROM CTE

WHERE CTE.rn = T.rn

FOR XML path(”),TYPE

).value(‘(./text())[1]’,’VARCHAR(MAX)’)

,1,1,”) AS ProductName

FROM CTE As T

GROUP BY CompanyID,

OrderNumber,

Rn

此外,可以使用FOR XML PATH方式,通過把列中的每條記錄拼接在一起,合并到一行記錄中去。

以下是一個示例,可以使用FOR XML PATH來實(shí)現(xiàn)把Table1中的記錄拼接到一行:

–使用 FOR XML PATH的方式進(jìn)行數(shù)據(jù)合并

SELECT DISTINCT

p.CompanyID,

p.OrderNumber,

STUFF((

SELECT ‘,’ + p.ProductName

FROM Table1 AS p

where p.CompanyID = p2.CompanyID

and p.OrderNumber = p2.OrderNumber

FOR XML PATH(”)

),1,1,”) AS [List]

FROM Table1 AS p2

以上兩種方式的優(yōu)勢都很明顯,都可以方便快捷把多行記錄快速靈活合并。

總結(jié)一下,MSSQL如何優(yōu)雅合并多行記錄:

– 使用CTE來對多行記錄快速靈活合并;

– 使用FOR XML PATH來把多行記錄拼接到一行。

成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽、重慶、貴陽機(jī)房服務(wù)器托管租用。


當(dāng)前名稱:MSSQL如何優(yōu)雅合并多行記錄(mssql 合并多行)
本文路徑:http://www.5511xx.com/article/cdcpssg.html