【发布时间】:2020-11-20 12:15:32
【问题描述】:
我一直在为这个问题而烦恼。我正在使用现有数据集,需要从表 A 中的列中删除所有空值并将它们分流,以便它们像表 B 中一样排序
我需要一些与 Coalesce 等效的东西,但要检索第 n 个值,以便我可以得到像表 B 中那样排序的结果
我有什么:
表 A
Name CURRENT OCT12 SEPT12 AUG12 JUL12 JUN12 MAY12 APR12
---------------------------------------------------------
A NULL NULL Aug-12 NULL NULL Jun-12 NULL Apr-12
B Nov-12 NULL Aug-12 NULL Jul-12Jun-12 NULL Apr-12
我需要什么:
表 B
Name Change1 Change2 Change3 Change4 Change5 Change6
----------------------------------------------------
A Aug-12 Jun-12 Apr-12 NULL NULL NULL
B Nov-12 Aug-12 Jul-12 Jun-12 Apr-12 NULL
在代码方面,它会是这样的:
Select
first non-null value as Change1
,second non-null value as Change2
,third non-null value as Change3
,fourth non-null value as Change4
,fifth non-null value as Change5...etc..
from Table_A
我正在使用 MySQL,但我不知道如何引用第 n 个非 null 值以便将它们调用到 Table_B 中
有人有什么想法吗?
【问题讨论】:
-
也许您也应该显示您的查询。很难理解你想要什么。
-
这是否意味着将每个月放在一行而不是在列中?麻烦的是,在这种情况下,每个不同的月份都来自不同的源表。我的问题可能是我习惯于查询数据库中的代码,但我从来没有从头开始设计数据库,所以我的技能在这方面受到了影响:(
-
我没有查询来获取数据,这就是我需要的。我可以使用 Coalesce 将表 A 中的第一个非空值拉到表 B 中的 Change1 列中,我可以使用复杂的 case 语句将表 A 中的第二个非空值检索到表 B 中。我的问题出现在尝试时要检索第 3、4、5 个非空值,我想不出用于将这些从表 A 提取到表 B 中的代码...
标签: mysql