如何将列中的所有非空值更改为 SQL 中的列名?

问题描述

假设我们有以下内容:@H_404_1@

ID   data1  data2  data3
001   carl   NULL   NULL
002   NULL   rick   NULL
003   NULL  mitch   NULL
004   NULL   NULL   NULL

我想要做的就是在列名中创建每个非空值。 SNowflake 中的类似内容。@H_404_1@

ID   data1  data2  data3
001  data1   NULL   NULL
002   NULL  data2   NULL
003   NULL  data2   NULL
004   NULL   NULL   NULL

我有不同的行作为 ID 以及我不希望将其应用于的几列。任何想法如何在 sql解决这个问题?@H_404_1@

解决方法

select id,case when data1 is not null then 'data1' else null end as data1,...