在空表上选择输出的SQLite虚拟值



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

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

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

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

我们可以在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;

最新更新