我想知道,把结果合并成一个结果的最有效方法是什么。
我想转身

Num  Ani   Country
---- ----- -------
22   cows  Canada
20   pigs  Canada
40   cows  USA
34   pigs  USA

进入:
cows  pigs  Country
----- ----- -------
22    20    Canada
40    34    USA

我想知道是否最好只使用SQL,或者是否应该将整个查询结果集提供给用户。一旦提供给用户,我就可以使用JavaScript将其解析为所需的格式。
另外,我也不知道如何将其转换为SQL查询的正确格式。我能想到的处理这个SQL语句的唯一方法是动态创建一个临时表。

最佳答案

你要做的手术叫做“旋转”PIVOT info page has a little more detail

  SELECT MAX(CASE WHEN t.ani = 'cows' THEN t.num ELSE NULL END) AS cows,
         MAX(CASE WHEN t.ani = 'pigs' THEN t.num ELSE NULL END) AS pigs,
         t.country
    FROM YOUR_TABLE t
GROUP BY t.country
ORDER BY t.country

09-27 15:55