我正在嘗試將行轉換為列,并將字串行連接成一個帶有指定分隔符的字串。
我的桌子:
| 型別 | 姓名 | 數 | 年齡 | 日期A | 日期B | 價格 |
|---|---|---|---|---|---|---|
| 一個 | 阿齊茲 | 1 | 12 | 2012-01-11 00:00:00.000 | 2012-01-11 00:00:00.000 | 129.00 |
| 乙 | 阿齊茲 | 1 | 34 | 2012-01-11 00:00:00.000 | 2012-01-11 00:00:00.000 | 100.00 |
| C | 阿齊茲 | 0 | 20 | 2012-01-11 00:00:00.000 | 2012-01-11 00:00:00.000 | 349.00 |
| D | 阿齊茲 | 1 | 90 | 2012-01-11 00:00:00.000 | 2012-01-11 00:00:00.000 | 222.00 |
我想要的結果:
| 姓名 | 一個 | 乙 | C | D |
|---|---|---|---|---|
| 阿齊茲 | 1、12,2012-01-11,2012-01-11,129.00 | 1, 34, 2012-01-11, 2012-01-11, 100.00 | 0,20,2012-01-11, 2012-01-11, 349.00 | 1,90,2012-01-11, 2012-01-11,222.00 |
uj5u.com熱心網友回復:
編輯 - 洗掉了 CROSS APPLY。我打算使用條件聚合并決定直接 PIVOT。
Select *
From (
Select Name
,Type
,Str = concat(num,',',age,',',convert(date,dateA),',',convert(date,dateB),',',Price)
From YourTable A
) src
Pivot ( max(Str) for Type in ([A],[B],[C],[D] ) ) pvt
結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/525808.html
標籤:sqlsql服务器
