【问题标题】:mySQL Rotate Table 90 degrees [duplicate]mySQL将表旋转90度[重复]
【发布时间】:2021-12-01 06:40:34
【问题描述】:

我有一个大约 100 列的表,只有一行。每列是一个日期,一列中的每个条目是一个对应的值。我想查询该表,使其仅显示 2 列:日期、值。

|--------|--------|--------|--------|--------|--------|
|  Date1 |  Date2 |  Date3 |  Date4 |  Date5 |  Date6 |
|--------|--------|--------|--------|--------|--------|
| Value1 | Value2 | Value3 | Value4 | Value5 | Value6 |
|--------|--------|--------|--------|--------|--------|

我想要什么:

|--------|--------|
|  Dates | Values |
|--------|--------|
|  Date1 | Value1 |
|--------|--------|
|  Date2 | Value2 |
|--------|--------|
|  Date3 | Value3 |
|--------|--------|
|  Date4 | Value4 |
|--------|--------|
|  Date5 | Value5 |
|--------|--------|
|  Date6 | Value6 |

【问题讨论】:

  • ~100 列 1 行闻起来很糟糕。每次您尝试做某事时,这种糟糕的设计都会给您带来越来越多的麻烦。首先修复您的设计
  • 不是自己设计的,但这是我在查询数据后打算做的事情
  • 好吧,先做吧。当您的自行车轮胎被刺破时,您是先给它充气再修复它还是相反?
  • @Cid 如果我想要自行车建议,我会在 tumblr 上
  • 通过 INFORMATION_SCHEMA.COLUMNS 收集列列表。构建多 UNION 查询文本。执行。

标签: mysql sql google-bigquery


【解决方案1】:

您不应该使用此列的设计.. 但无论如何,如果您需要分隔行中的列的结果,您可以尝试使用 UNION ALL

select 'date1', date1 
from mytable 
union all 
select 'date2', date2 
from mytable 
......
union all 
select 'date100', date100
from mytable 

正如@akina 在评论中所建议的,您可以使用 INFORMATION_SCHEMA.COLUMNS 动态构建查询

【讨论】:

    猜你喜欢
    • 2016-09-23
    • 2016-11-13
    • 2013-02-09
    • 2013-04-02
    • 1970-01-01
    • 2011-03-22
    • 2013-08-04
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多