作者:蛋蛋小可爱的诱惑_360 | 来源:互联网 | 2023-02-04 11:19
如果我在sqlite3(3.17.0)中运行此查询
select T.* from (values (1),(2),(3),(4),(5)) as T;
我得到以下输出,其中没有T的第一列的名称.
----------
1
2
3
4
5
如何给T的第一列命名/别名,或者,有没有办法通过索引以某种方式引用它?
1> CL...:
查询的VALUES表单没有任何机制供您指定列名。(VALUES子句旨在在CTE或视图中使用,您可以在其他位置指定列名。)
碰巧的是,VALUES返回的列确实具有名称(但未记录):
sqlite> .header上
sqlite> .mode列
sqlite>值(42);
第1栏
----------
42
无论如何,即使该名称不能在子查询中保留下来,空列名称也完全没有问题:
select "" from (values (1),(2),(3),(4),(5));
要应用列名,请在其周围加上CTE:
WITH T(my_column) AS (
VALUES (1),(2),(3),(4),(5)
)
SELECT * FROM T;
或使用复合查询(WHERE 0
从第一个查询中删除该行):
SELECT NULL AS my_column WHERE 0
UNION ALL
VALUES (1),(2),(3),(4),(5);