繁体   English   中英

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

[英]How to convert a row into a column in mysql query without pivot

如何在没有透视的情况下将行转换为mysql查询中的列。 我有一个类似的表架构

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

1     JV

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

我想将其转置为

**1 JV 2 SDH**

我已经尝试过枢轴,但是我需要找到一个替代方法。 请帮忙。

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

即使根据您的最新评论,仍然不清楚您要达到的目标,这实际上使您无法获得所需的确切答案。

现在,如果您只需要转置国家/地区表并将其显示为一行,则可以使用动态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演示

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM