Php 基于相同编号和顺序的MSSQL连接行

Php 基于相同编号和顺序的MSSQL连接行,php,sql,join,Php,Sql,Join,我是SQL查询新手。我有一个问题,当我们有相同的编号并按订单编号排序时,如何加入MSSQL中的行。谢谢 输入: No order Character === ====== ============ 1 3 A 1 2 B 1 1 C 2 3 D 2 2 E 2 1

我是SQL查询新手。我有一个问题,当我们有相同的编号并按订单编号排序时,如何加入MSSQL中的行。谢谢

输入:

No      order       Character
===     ======      ============
1       3           A     
1       2           B
1       1           C
2       3           D
2       2           E
2       1           F
输出:

No          Character
=========   ============
1           CBA   
2           FED

如果您知道SQL Server中的最大顺序,则可以轻松使用条件聚合:

select no,
       ( max(case when [order] = 1 then character else '' end) +
         max(case when [order] = 2 then character else '' end) +
         max(case when [order] = 3 then character else '' end)
       )
from t
group by no;
如果没有,则需要XML技巧:

select no,
       (select character
        from t
        where t.no = n.no
        for xml path ('')
       ) as output 
from (select distinct no from t) n;

在MySQL中,您将使用
GROUP_CONCAT()
GROUP by
我只使用了一个表,但在您的代码中有两个表“t.no=n.no”表t和表n。@rizal
n
是子查询上的别名,而不是另一个表。@rizal应该是“path”而不是“plath”