sql语句查出多行数据,如何将ID相同的行并成一行,且不相同的字段合成一个字符串

其中相同的字段只需要取一个值即可

我个人建议你把逻辑写在代码里面
像这种数据库操作很好资源的,严重影响效率
可以先取出一个list
List<User> resultList = 数据库返回
Map<String,String> map = new HashMap<String,String>();
for(User user : resultList){
String val ;
if(map.containsKey(user.getID().toString())){
val = map.get(user.getID().toString());
val = val + user.getAnotherItem();
map.remove(user.getID().toString());
}else{
val = user.getAnotherItem();
}

map.put(user.getID().toString(),val);
}
//map里面的东西就是你要的
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-13
相同ID合并成一行,只需要用联合查询就可以了
不相同的字段合成一个字符串只需要连接符+然后 AS一个别名就OK了~
第2个回答  2015-06-19
select distinct 字段 from 表名

sql语句查出多行数据,如何将ID相同的行并成一行,且不相同的字段合成一个...
可以先取出一个list List<User> resultList = 数据库返回 Map<String,String> map = new HashMap<String,String>();for(User user : resultList){ String val ;if(map.containsKey(user.getID().toString())){ val = map.get(user.getID().toString());val = val + user.getAnotherItem(...

sql 数据怎么多行合并成一行
group by 前面相同的字段,后面不同的,用max取。SELECT m.member_id,prefix_desc 'Prefix:',UPPER(first_name) 'First Name:',UPPER(last_name) 'Last Name:',UPPER(email) 'Email:',LOWER(user_id) 'User ID:',REPLICATE('*',LEN(password)) 'Password:',('***'+SUBSTRING(license_no...

如何将多行数据合并成一行数据
将多行数据合并成一行数据,通常依赖于所使用的数据处理工具或编程语言。在SQL中,可以使用`GROUP_CONCAT`(MySQL特有)或`STRING_AGG`(SQL Server 2017+及PostgreSQL等)等函数来实现。这些函数可以将指定列中的多行值连接成一个字符串,中间可以指定分隔符。例如,在MySQL中,如果你有一个包含多行数据...

GP数据库,如何通过sql语句实现多行拼接成一行
如下:select tablename,array_to_string (ARRAY (SELECT column FROM T1 A WHERE A.tablename = B.tablename ),', ') AS group_concat FROM T1 B group by tablename ;

sql server怎么把多行数据合并成一行
group by 前面相同的字段,后面不同的,用max取。SELECT m.member_id,prefix_desc 'Prefix:',UPPER(first_name) 'First Name:',UPPER(last_name) 'Last Name:',UPPER(email) 'Email:',LOWER(user_id) 'User ID:',REPLICATE('*',LEN(password)) 'Password:',('***'+SUBSTRING(license_no...

求助,oracle多行数据合并成一行
select id ,listagg( name, ',' ) within group ( order by id ) as name from TABLE_NAME GROUP BY id;

sql中一对多关系的查询结果的多行转换成一行多列
insert into test_fee values(1,1004,60);insert into test_fee values(2,1001,99);insert into test_fee values(2,1002,66);insert into test_fee values(2,1001,55);3、查询表中所有记录,select t.*, rowid from test_fee t,4、编写sql,按userid汇总,根据不同的feeid,进行行转列...

如何用sql语句将多行合并成一行
select id ,time,sum(2),sum(3),sum(4)... from 表 group by id,time order time 如果time 不是字符类型分组分的不对可以直接转成字符类型到天再用

SQL 怎样将查询出某列的多行数据,变为一行显示? 通过SQL语句查询出结果...
你好,你看看参考一下。DECLARE @t TABLE(id int, value varchar(10))INSERT @t SELECT 1, '出国'UNION ALL SELECT 2, '回国'SELECT [values]= STUFF((REPLACE(REPLACE((SELECT value FROM @t FOR XML PATH('')),'<value>',','),'<\/value>','')),1,1,'')...

sql把同一id有不同属性值的多行数据合并成一行
很简单,同一个表两个id关联,用连接符||就行。select a.id,a.name||b.name from table a,table b where a.id=b.id

相似回答