MySQL - 将两列分成两个不同的行

Posted

技术标签:

【中文标题】MySQL - 将两列分成两个不同的行【英文标题】:MySQL - Split two columns into two different rows 【发布时间】:2018-06-12 19:33:10 【问题描述】:

如果这是一个愚蠢的问题,我不知道要创建这个抱歉。

我有一张桌子,两支球队和总观看,稍后我将在不同的地方使用此信息,所以我的想法将这两列合并为一列但两行不同:

HomeTeam      AwayTeam     Totalwatch 
A              B              100
A              C               90
C              A               80
D              B               70
C              E               50

这个可以吗

Teams          TotalWatch
A                100
B                100
A                 90
C                 90
C                 80
A                 80
D                 70
B                 70
C                 50
E                 50

我有几列,所以它们也会重复。

请注意,我知道concat 在单行中如何与concat 函数一起使用我不知道如何在两行中使用

【问题讨论】:

【参考方案1】:

只需使用UNION ALL:

SELECT * 
FROM(
    SELECT HomeTeam Teams,TotalWatch FROM Your_Table
    UNION ALL
    SELECT AwayTeam,TotalWatch FROM Your_Table
    )D
ORDER BY TotalWatch DESC

【讨论】:

【参考方案2】:

您可以使用UNION ALLORDER BY Totalwatch DESC 来获得按照Totalwatch 排序的结果。

SELECT HomeTeam AS Teams, Totalwatch  FROM YourTable
UNION ALL
SELECT AwayTeam, Totalwatch FROM YourTable
ORDER BY Totalwatch DESC;

【讨论】:

【参考方案3】:

试试这个兄弟.. :)

SELECT HomeTeam,Totalwatch
FROM   YourTable

UNION ALL

SELECT AwayTeam,Totalwatch
FROM   YourTable

【讨论】:

以上是关于MySQL - 将两列分成两个不同的行的主要内容,如果未能解决你的问题,请参考以下文章

如何将两列合并到一个新的 DataFrame 中?

r 将两列一起绘制为单独的行ggplot

我们怎样才能将两个单词分成不同的行? [重复]

WPS如何将两列数据表中相同或不同内容提取出来,排序显示在其他列?

比较来自两个不同表的两列的逗号分隔值

将两列与另外两列匹配