0

如何在没有数据透视的情况下将行转换为 mysql 查询中的列。我有一个表模式

***********************
ID   SchoolName

1     JV

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

我想将其转置为

**1 JV 2 SDH**

我试过枢轴,但我需要找到一个替代方案。请帮忙。

4

3 回答 3

0
SELECT GROUP_CONCAT(CONCAT(ID, ' ', SchoolName) SEPARATOR ' ') AS OUTPUT
FROM YourTable
于 2013-08-23T05:53:58.060 回答
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;

输出:

| 印度 | 美国 | 巴西 |
----------------------
| 1 | 2 | 3 |

这是SQLFiddle演示

于 2013-08-25T01:56:22.990 回答
0
SELECT 
GROUP_CONCAT(CONCAT_WS(' ',`ID`,`SchoolName`) ORDER BY `ID` ASC SEPARATOR ' ') gre
FROM 
tblstudents ;
于 2015-12-14T07:05:48.857 回答