經常遇到的,乙個字段顯示多欄位資料 精典

2021-05-24 02:31:19 字數 1040 閱讀 9175

有表內容﹕

編號 內容

a    abc

a    aaa

a    dddd

b    1223

b    fkdjfd

....

實現結果﹕

a   abc,aaa,dddd

b   1223,fkdjfd

要求用一條sql實現﹐如﹕select sum(內容) from table group by 編號

--該問題,寫乙個合併函式,後,分組合併既可!

--測試資料

create table 表(編號 varchar(20),內容 varchar(20))

insert 表 select 'a','abc'

union all select 'a','aaa'

union all select 'a','dddd'

union all select 'b','1223'

union all select 'b','fkdjfd'

--處理分組合併函式學

create function joinstr(@sno as varchar(20))

returns varchar(200)

begin

declare @s as varchar(8000)

set @s=''

select @s=@s+','+ltrim(rtrim(內容)) from

(select 內容 from 表 where 編號=@sno)a

set @s=stuff(@s,1,1,'')

return  @s

end--查詢語句

select 編號,dbo.joinstr(編號) as 內容 from 表 group by 編號

下例通過在第乙個字串 (abcdef) 中刪除從第二個位置(字元 b)開始的三個字元,然後在刪除的起始位置插入第二個字串,建立並返回乙個字串。

select stuff('abcdef', 2, 3, 'ijklmn')

mysql多表乙個字段

先執行這三個 show variables like group concat max len 查詢大小 set global group concat max len 10240000 設定大小滿足執行後能夠存放所有的插入語句 set session group concat max len 10...

mysql中合併兩個欄位為乙個字段顯示

mysql中合併兩個欄位為乙個字段顯示 mysql中concat函式 使用方法 www.2cto.com concat str1,str2,返回結果為連線引數產生的字串。如有任何乙個引數為null 則返回值為 null。注意 如果所有引數均為非二進位制字串,則結果為非二進位制字串。如果自變數中含有任...

mysql乙個欄位為空時使用另乙個字段排序

表中有兩個日期欄位createdate,updatedate。其中updatedate可以為空,要求使用updatedate排序,如果updatedate為空則使用createdate排序,結果要順序排下來。按照常規方法 這樣的結果是為空的資料排在了最下面,不符合要求。這樣試試 這樣排的結果是先按u...