首页 > 解决方案 > 空表上选择输出中的 SQLite 虚拟值

问题描述

我有一个带有这个示例表的 SQLite 数据库:

CREATE TABLE PROVA 
(
    c1 TEXT NOT NULL UNIQUE,
    c2 TEXT NOT NULL,
    c3 TEXT NOT NULL
);

该表在某些时候会是空的(例如在初始化期间),我需要一个查询,它可以返回这样的输出,而不必指定列名(每列的虚拟值)。

c1        c2        c3
--------  --------  --------
dummy     dummy     dummy

标签: sqlite

解决方案


我们可以借助以下方法在这里使用联合技巧RANK

WITH cte AS (
    SELECT c1, c2, c3, 1 AS pos FROM PROVA
    UNION ALL
    SELECT 'dummy', 'dummy', 'dummy', 2
),
cte2 AS (
    SELECT c1, c2, c3, RANK() OVER (ORDER BY pos) rn
    FROM cte
)

SELECT c1, c2, c3
FROM cte2
WHERE rn = 1;

推荐阅读