SQL 多行值變成乙個單元格值

2021-06-07 12:32:30 字數 3702 閱讀 7052

前面需求沒看懂,後面是個合併字串.

sql code

/*

地點:廣東深圳

描述:將如下形式的資料按id欄位合併value欄位。

id value

----- ------

1 aa

1 bb

2 aaa

2 bbb

2 ccc

需要得到結果:

id value

------ -----------

1 aa,bb

2 aaa,bbb,ccc

即:group by id, 求 value 的和(字串相加)

*/--

1、sql2000中只能用自定義的函式解決

create

table

tb(id

int, value

varchar(10

))insert

into

tb values(1

, 'aa'

)insert

into

tb values(1

, 'bb'

)insert

into

tb values(2

, 'aaa'

)insert

into

tb values(2

, 'bbb'

)insert

into

tb values(2

, 'ccc')go

create

function

dbo.f_str(

@idvarchar(10

)) returns

varchar

(1000)as

begin

declare

@str

varchar

(1000)

select

@str

=isnull

(@str+'

,', '') +

cast

(value

asvarchar

) from

tb where

id =

@idreturn

@str

endgo

--呼叫函式

select

id , value

=dbo.f_str(id)

from

tb group

byid

drop

function

dbo.f_str

drop

table

tb--

2、sql2005中的方法

create

table

tb(id

int, value

varchar(10

))insert

into

tb values(1

, 'aa'

)insert

into

tb values(1

, 'bb'

)insert

into

tb values(2

, 'aaa'

)insert

into

tb values(2

, 'bbb'

)insert

into

tb values(2

, 'ccc')go

select

id,

[value]=

stuff

((select',

'+[value

]from

tb t

where

id =

tb.id

forxml path(

'')) , 1,

1, '')

from

tbgroup

byid

drop

table

tb--

3、使用游標合併資料

create

table

tb(id

int, value

varchar(10

))insert

into

tb values(1

, 'aa'

)insert

into

tb values(1

, 'bb'

)insert

into

tb values(2

, 'aaa'

)insert

into

tb values(2

, 'bbb'

)insert

into

tb values(2

, 'ccc')go

declare

@ttable

(id

int,value

varchar

(100

))--

定義結果集表變數

--定義游標並進行合併處理

declare

my_cursor

cursor

local

forselect

id , value

from

tbdeclare

@id_old

int,

@idint

, @value

varchar(10

) ,

@svarchar

(100

)open

my_cursor

fetch

my_cursor

into

@id,

@value

select

@id_old

=@id

, @s=''

while

@@fetch_status=0

begin

if@id

=@id_old

select@s=

@s+',

'+cast

(@value

asvarchar

)

else

begin

insert

@tvalues

(@id_old

, stuff(@s

,1,1

,''))

select@s=

','+

cast

(@value

asvarchar

) ,

@id_old

=@id

endfetch

my_cursor

into

@id,

@value

endinsert

@tvalues

(@id_old

, stuff(@s

,1,1

,''))close

my_cursor

deallocate

my_cursor

select

*from

@tdrop

table

tb

引用(插入)乙個單元格到另乙個單元格

引用 插入 簡稱引插。分為以下幾種情況 在sheet1中引插,引插結果也放在sheet1中 在sheet1中引插,引插結果也放在sheet2中 在excel1中引插,引插結果放在excel2中。3又分為 excel1和excel2在同一目錄 不過以上的情況區別不大,一通百通。話不多說,開幹。其實這個...

掌控 GridView 讀取單元格資料值

按照 msdn的說法,gridview 控制項將其所有資料行都儲存在 rows 集合中。通過使用 rows的cells 屬性,可以訪問 gridviewrow 物件的單獨單元格。如果某個單元格包含其他控制項,則通過使用單元格的 controls 集合,可以從單元格檢索控制項。如果控制項指定了 id,...

讀取EXCEL ,EXCEL值轉化,單元格樣式

讀取excel public static workbook readexcel string filepath string extstring filepath.substring filepath.lastindexof inputstream is null try else if xlsx...