Oracle Mysql Sqlserver 把一列转为按逗号分割的行

oracle:

create table str_de(name varchar(25),addre varchar(25));


insert into str_de values('xugq','北京');
insert into str_de values('xugq','陕西');
insert into str_de values('xugq','深圳');
insert into str_de values('xugq','上海');
insert into str_de values('lfn','上海');
insert into str_de values('lfn','澳门');	
insert into str_de values('lfn','香港');	



SCOTT@PROD>select name,listagg(addre,',') within group(order by name) address from str_de group by name;

NAME       ADDRESS
---------- ------------------------------
lfn        上海,澳门,香港
xugq       上海,北京,深圳,陕西



SCOTT@PROD>select name,wm_concat(addre) address from str_de group by name;

NAME       ADDRESS
---------- --------------------------------------------------------------------------------
lfn        上海,香港,澳门
xugq       北京,上海,深圳,陕西




MYSQL:

create table str_de(name varchar(25),addre varchar(25));

insert into str_de values('xugq','北京');
insert into str_de values('xugq','陕西');
insert into str_de values('xugq','深圳');
insert into str_de values('xugq','上海');
insert into str_de values('lfn','上海');
insert into str_de values('lfn','澳门');	
insert into str_de values('lfn','香港');	


mysql> select name,group_concat(addre) from str_de group by name;
+------+---------------------+
| name | group_concat(addre) |
+------+---------------------+
| lfn  | 上海,澳门,香港      |
| xugq | 北京,陕西,深圳,上海 |
+------+---------------------+
2 rows in set (0.00 sec)


SQLSERVER:

create table str_de(name varchar(25),addre varchar(25));

insert into str_de values('xugq','北京');
insert into str_de values('xugq','陕西');
insert into str_de values('xugq','深圳');
insert into str_de values('xugq','上海');
insert into str_de values('lfn','上海');
insert into str_de values('lfn','澳门');	
insert into str_de values('lfn','香港');	


SELECT B.name,
       B.addre,
	   substring(B.addre,1,len(B.addre)-1)
	  FROM 
	     (
		  SELECT name,(SELECT addre+',' FROM str_de where name=A.name for XML PATH('')) AS addre FROM str_de A GROUP BY name 
		 )B;


需要将结果中最后一个逗号做处理.		 
name	addre	             addre1
lfn	    上海,澳门,香港,	    上海,澳门,香港
xugq	北京,陕西,深圳,上海,	北京,陕西,深圳,上海

猜你喜欢

转载自blog.csdn.net/lv941002/article/details/84295976