如果我在sqlite3:
中这样做SELECT *
FROM (VALUES (1), (2), (3)) AS "tbl.col"
WHERE "tbl"."col" = 1
我得到:没有这样的专栏:tbl.col
正确的方法是什么?
谢谢!
我认为您正在寻找:
SELECT *
FROM (VALUES (1), (2), (3)) AS tbl(col)
WHERE tbl.col = 1;
请注意,当您逃脱标识符(使用"tbl.col"
)时,那就是一个名称,其中有一个周期。不是两个名字。
编辑:
我本来可以期望上述功能,但它不在sqlite中。一种选择是使用CTE:
with tbl(col) as (
VALUES (1), (2), (3)
)
SELECT *
FROM tbl
where tbl.col = 1
我找到了这个问题,回答了我的问题。
SELECT "tbl"."" AS "col"
FROM (VALUES (1), (2), (3)) AS "tbl"
基本上,在值中,第一个列名是一个空字符串",第二个是":1",第三个是":2"等...
希望这对别人有帮助。