如何在SQL Server 2008+中使用ORDER BY和FOR XML选择DISTINCT

mdu*_*tra 3 sql distinct for-xml-path

所以我现在已经和它斗争了一段时间,我认为这必须是一项简单的任务.我的目标是返回一个字符串,其中返回的所有唯一行都以正斜杠分隔,并按输入时间排序.这是示例数据

表:地点

Location   Time
========   =======
OR1        2013-02-06 16:55:47.000
OR1        2013-02-06 16:56:34.000
ICU1       2013-02-06 16:59:50.000
OR1        2013-02-06 17:02:50.000
ICU1       2013-02-06 17:09:50.000
Run Code Online (Sandbox Code Playgroud)

因此,鉴于上面的数据表,我想返回一个表示"OR1/ICU1"的字符串.我可以使用FOR XML PATH将不同的值作为字符串返回,但是一旦我抛出ORDER BY,它就会因错误而崩溃.

想法?

soy*_*sal 6

试试吧;

SELECT STUFF ((
  SELECT cast('/' as Varchar(max)) + Location
     From Locations
     Group by Location
     Order by MAX(Time) FOR XML PATH('')) , 1 , 1 , '' ) as result
Run Code Online (Sandbox Code Playgroud)