我有一张表,上面有如下所示的数据。
Table_A
Row Id Date1 Date2 Date3
1 1/12/2008 2/12/2008 3/12/2008
2 2/12/2010 NULL NULL
3 3/12/2008 4/12/2008 NULL
我需要写一个mysql查询来得到这样的结果
Row Id App_Date Date1 Date2 Date3
1 1/12/2008 1/12/2008 2/12/2008 3/12/2008
1 2/12/2008 1/12/2008 2/12/2008 3/12/2008
1 3/12/2008 1/12/2008 2/12/2008 3/12/2008
2 2/12/2010 2/12/2010 NULL NULL
3 3/12/2008 3/12/2008 4/12/2008 NULL
3 4/12/2008 3/12/2008 4/12/2008 NULL
基本上我想填充一个新的列 App_Date
基于 Date1
, Date2
以及 Date3
. 如果任何日期字段有任何值。
然后我应该创建一个记录,在该列中填充日期。例如,如果一个记录中填充了所有的3个日期,那么我应该有3个记录,其中一个记录的日期填充在新列中 App_Date
就像上面一样。
实现这一点的最佳mysql查询是什么?
1条答案
按热度按时间jvidinwx1#
假设您的日期列数总是3,那么您可以编写一个
union
这样查询: