数据库SQL查询问题,一道面试题,查了好久也没搞定,来SF求助

数据库中有张表,

表的定义为name, address,arrive_time,

数据为

张三,北京,10:00 ;
张三 ,河北,12:00 。

怎么查询显示结果为 张三, 北京 河北, 12:00

阅读 4.4k
2 个回答
SELECT name, GROUP_CONCAT(DISTINCT address SEPARATOR ' ') AS address, max(arrive_time) AS arrive_time
FROM mytable
GROUP BY name
--sql server的写法

    SELECT name, 
    
    STUFF((SELECT','+ convert(VARCHAR(200),address) FROM [TableName] WHERE name=V.name FOR XML PATH('')),1,1,'') AS Newaddress,
    
    MAX(arrive_time) AS Maxtime
    
    FROM [TableName] V 
    
    GROUP BY name
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题