Sql 将列转换为行

Sql 将列转换为行,sql,mysql,Sql,Mysql,以下查询正在按预期工作 但是,如何获得以列显示的行中的结果呢 select curdate() AS one, date_sub(curdate(), interval 15 day) AS two , date_sub(curdate(), interval 30 day) AS three , date_sub(curdate(), interval 45 day) AS four , date_sub(curdate(), interval 60 day) AS five , date_

以下查询正在按预期工作

但是,如何获得以列显示的行中的结果呢

select curdate() AS one, 
date_sub(curdate(), interval 15 day) AS two
, date_sub(curdate(), interval 30 day) AS three
, date_sub(curdate(), interval 45 day) AS four
, date_sub(curdate(), interval 60 day) AS five
, date_sub(curdate(), interval 75 day) AS six
, date_sub(curdate(), interval 90 day) AS seven
;

| one        | two        | three      | four       | five       | six        | seven      |
+------------+------------+------------+------------+------------+------------+------------+
| 2010-09-27 | 2010-09-12 | 2010-08-28 | 2010-08-13 | 2010-07-29 | 2010-07-14 | 2010-06-29 | 
一行中的预期结果:

one 2010-09-27
two 2010-09-12
three 2010-08-28
four 2010-08-13
five 2010-07-29
six 2010-07-14
seven 2010-06-29
你可以用这个


我认为只有当您的列是相同的数据类型时,这才有效。我收到以下错误:“将varchar值“fieldx”转换为数据类型int时转换失败”。@Misi您需要将数字列转换为字符串。您有执行此操作的SP吗?因为我只需要知道表名就可以动态提取数据。如果我有多行的话,我该怎么转置呢?@Misi-听起来你应该问一个新问题。
select 'one' as label,  curdate() as val
UNION ALL
select 'two' as label,  date_sub(curdate(), interval 15 day) as val
UNION ALL
select 'three' as label,  date_sub(curdate(), interval 30 day)  as val
UNION ALL
select 'four' as label,  date_sub(curdate(), interval 45 day) as val
UNION ALL
select 'five' as label,  date_sub(curdate(), interval 60 day) as val
UNION ALL
select 'six' as label,  date_sub(curdate(), interval 75 day)  as val
UNION ALL
select 'seven' as label,  date_sub(curdate(), interval 90 day) as val