【问题标题】:sqlite get first not null column data and index within the record?sqlite首先获取记录中的非空列数据和索引?
【发布时间】:2018-02-26 16:18:08
【问题描述】:

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

CREATE TABLE SomeTable(
    COL1      TEXT,
    COL2      TEXT,
    COL3      TEXT,
    COL4      TEXT,
    ...)

一行中只有一个不为空,即表中的每条记录如下:

NULL, NULL, NULL, SomeText, NULL, ...

我需要获取第一个非空列的数据和索引吗?

由于标准说“向 null 添加任何内容都会产生 null”, 我正在考虑使用合并函数将列的索引与其数据连接起来

select coalesce('1 ' || COL1, '2 ' || COL2, '3 ' || COL3, ...) col from SomeTable;

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

【问题讨论】:

  • 你肯定总是在一列中有数据吗?
  • 是的,数据总是在一列中

标签: sql sqlite


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2014-07-16
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多