SQL SERVER / ORACLE 拼接多行記錄欄位為一個字串的方法
阿新 • • 發佈:2020-12-17
SQL SERVER / ORACLE 拼接多行記錄欄位為一個字串的方法:
ORACLE:使用WMSYS.WM_CONCAT(注意選取的欄位增加to_char轉換,確保字元編碼正確)
SQL SERVER:使用連線字串方式選取
select @s = @s + ',' + rtrim(ltrim(NAME)) from tableA;
select substring(@s, 2, len(@s));
declare @sql VARCHAR(MAX), @tracetypes VARCHAR(MAX)
set @sql = 'select WMSYS.WM_CONCAT(to_char(TRACETYPE)) TRACETYPES from ( select TRACETYPE from data.COMMONTRACELOG where ID > ' + CONVERT(VARCHAR(50),@c2) + ' group by TRACETYPE order by count(1) desc ) where rownum <= 10'
SELECT @tracetypes=TRACETYPES FROM OPENQUERY(clinicdb, 'select WMSYS.WM_CONCAT(to_char(TRACETYPE)) TRACETYPES from ( select TRACETYPE from data.COMMONTRACELOG where ID > ' + CONVERT(VARCHAR(50),@c2) + ' group by TRACETYPE order by count(1) desc ) where rownum <= 10')
SELECT TRACETYPE, count(1) FROM OPENQUERY(clinicdb,'select * from data.commontracelog c') c WHERE c.ID > @c2 group by TRACETYPE order by count(1) desc
declare @s varchar(max);
set @s='';
select @s = @s + ',' + rtrim(ltrim(TRACETYPE)) from (SELECT TOP 10 TRACETYPE FROM OPENQUERY(clinicdb,'select * from data.commontracelog c') c WHERE c.ID > @c2 group by TRACETYPE order by count(1) desc) t;
select substring(@s, 2, len(@s));