有一个表,由几列文本类型组成,如
CREATE TABLE SomeTable(
COL1 TEXT,
COL2 TEXT,
COL3 TEXT,
COL4 TEXT,
...)
在一行中只有一个不为空,即表中的每个记录如下所示:
NULL, NULL, NULL, SomeText, NULL, ...
我需要获取第一个非空列的数据和索引吗?
因为standart说“将任何内容添加到null会给出null”, 我正在考虑使用coalesce函数来连接列的索引及其数据
select coalesce('1 ' || COL1, '2 ' || COL2, '3 ' || COL3, ...) col from SomeTable;
有没有更好的方法来完成这项任务?
答案 0 :(得分:1)
我认为case
是最简单的方法:
select (case when col1 is not null then '1 ' || col1
when col2 is not null then '2 ' || col2
. . .
end) as col