SQL 多行轉一列

2022-07-12 06:24:08 字數 1660 閱讀 2476

1、建立表

create

table

[dbo

].[a](

[id][

nchar

] (10) collate chinese_prc_ci_as null,[

name][

nchar

] (10) collate chinese_prc_ci_as null,[

value][

nchar

] (10) collate chinese_prc_ci_as null

) on

[primary

]go

2、插入資料

insert

into

dbo.a ( id, name, value )

values ( n'

1', --

id - nchar(10)

n'張三', --

name - nchar(10)

n'1'

--value - nchar(10)

), ( n'2

', --

id - nchar(10)

n'張三', --

name - nchar(10)

n'2'

--value - nchar(10)

), ( n'3

', --

id - nchar(10)

n'李四 ', --

name - nchar(10)

n'1'

--value - nchar(10)

), ( n'4

', --

id - nchar(10)

n'李四', --

name - nchar(10)

n'2'

--value - nchar(10)

), ( n'5

', --

id - nchar(10)

n'王五', --

name - nchar(10)

n'1'

--value - nchar(10)

), ( n'6

', --

id - nchar(10)

n'王五', --

name - nchar(10)

n'2'

--value - nchar(10)

)

3、查詢表

select

*from a

4、把value列拼接起來,並用逗號分隔

select

rtrim(a.value)+',

'from a for xml path('')

5、按照name分組,計算當前name的value值的拼接

select

b.name,(

select

rtrim(value)+',

'from a where name=b.name for xml path('')) as valuenew from dbo.a as b group

by name

本文**於 

oracle 多行轉一列

以前用過又忘了。今天做資料匯出用到,記下。oracle中的wmsys.wm concat主要實現行轉列功能 說白了就是將查詢的某一列值使用逗號進行隔開拼接,成為一條資料 select d.id,d.papid as 援助系統,i.papname,d.fid as 發貨單號,d.fwdate as 發...

一列資料轉多行多列

一列資料轉多行多列 方法二 插入行列公式 公式解析 row 的功能是返回引用的行號 column 的功能是返回引用的列號 indirect函式 功能 返回文字字串所指定的引用 語法規則 indirect ref text,a1 ref text 單元格引用,該引用所指向的單元格中存放有對另一單元格的...

oracle中多行轉一列

最近專案中匯出資料一直用到將多行資料合併成一列顯示,以前不太會用,最近看到網上有一些方法,總結一下以後備用 有乙個表,表名為tab test,如下 一 多行轉一列 select id,vnum,to char wmsys.wm concat vname c from tab test group b...