这是我在这里的第一个问题,所以请耐心听我说,这是我在处理产品数据时遇到的一个挑战。
| 栏_A|栏_B| C列|栏_D|栏_E|栏_F|
| - -|- -|- -|- -|- -|- -|
| A1级|空值|C1级|第一天|空值|F1代|
| 空值|空值|C2级|空值|E2类|二层|
| A3页|地下三层|空值|第三日|空值|三层|
| 空值|空值|空值|空值|空值|四层|
我所要做的就是把数据格式化成这样一种格式,使前端开发人员可以方便地把它放到网站上。基本上,只要有NULL,我就必须把数据移到其他列中。例如:
1.如果第一、第二、第五列为空,则第三、第四、第六列的数据应分别打印在前三列
1.如果前5列全部为空,则第6列的数据应打印在第1列中,依此类推
预期输出:
| 栏_A|栏_B| C列|栏_D|栏_E|栏_F|
| - -|- -|- -|- -|- -|- -|
| A1级|C1级|第一天|F1代|空值|空值|
| C2级|E2类|二层|空值|空值|空值|
| A3页|地下三层|第三日|三层|空值|空值|
| 四层|空值|空值|空值|空值|空值|
这在SQL中是可能的,如果是的话,请帮助我的方法。
我应该使用case语句还是有更好的方法?
1条答案
按热度按时间osh3o9ms1#
您可以尝试:
ROW_NUMBER()
函数对列值不为空的非透视数据进行处理,以获得不包含空值的新顺序。请参见demo。