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

How to change all non-null values in a column to the column name in SQL?

假设我们有以下内容:

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

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

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

我有不同的行作为 ID,还有几列我不想应用它。在 SQL 中如何解决这个问题?

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