sqlite首先得到的不是列数据和记录内的索引?

时间:2018-02-26 16:18:08

标签: sql sqlite

有一个表,由几列文本类型组成,如

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;

有没有更好的方法来完成这项任务?

1 个答案:

答案 0 :(得分:1)

我认为case是最简单的方法:

select (case when col1 is not null then '1 ' || col1 
             when col2 is not null then '2 ' || col2
             . . .
        end) as col