如何使用列别名选择值



如果我在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"等...

希望这对别人有帮助。

最新更新