我有一个包含此示例表的 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;
如果您正在初始化某些内容(即数据的量很小),您可以通过连接到“:内存:”数据库来在脚本中准备模式并解决所有列挑战,然后编写完全完善的文件输出到磁盘。