如何在没有pivot的mysql查询中将行转换为列

时间:2013-08-23 05:19:03

标签: php mysql sql

如何在没有pivot的mysql查询中将行转换为列。我有一个类似

的表模式
***********************
ID   SchoolName

1     JV

2     SDH
***********************

我想将其转换为

**1 JV 2 SDH**

我尝试过枢轴,但我需要找到另一种选择。请帮忙。

3 个答案:

答案 0 :(得分:0)

SELECT GROUP_CONCAT(CONCAT(ID, ' ', SchoolName) SEPARATOR ' ') AS OUTPUT
FROM YourTable

答案 1 :(得分:0)

即使根据您的上一次评论,仍然不清楚您要实现的目标,这实际上会阻止您获得您正在寻找的确切答案。

现在,如果您只需转置国家/地区表并将其作为单行显示,则可以使用动态SQL执行此操作

SET @sql = NULL;

SELECT GROUP_CONCAT(CONCAT(id, '`', country_name, '`'))
  INTO @sql
  FROM countries;

SET @sql = CONCAT('SELECT ', @sql);

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

输出:

| INDIA | USA | BRASIL |
------------------------
|     1 |   2 |      3 |

这是 SQLFiddle 演示

答案 2 :(得分:0)

SELECT 
GROUP_CONCAT(CONCAT_WS(' ',`ID`,`SchoolName`) ORDER BY `ID` ASC SEPARATOR ' ') gre
FROM 
tblstudents ;