如何选择具有列别名的值?

Age*_*dum 2 sql sqlite

如果我在SQLite3中这样做:

SELECT *
FROM (VALUES (1), (2), (3)) AS "tbl.col"
WHERE "tbl"."col" = 1
Run Code Online (Sandbox Code Playgroud)

我得到:没有这样的专栏:tbl.col

正确的方法是什么?

谢谢!

Gor*_*off 5

我认为您正在寻找:

SELECT *
FROM (VALUES (1), (2), (3)) AS tbl(col)
WHERE tbl.col = 1;
Run Code Online (Sandbox Code Playgroud)

请注意,当您转义一个标识符(使用"tbl.col")时,那是一个带有句点的名称。不是两个名字。

编辑:

我曾期望上面的工作,但是在SQLite中却不行。一种替代方法是使用CTE:

with tbl(col) as (
      VALUES (1), (2), (3)
     )
SELECT *
FROM tbl
where tbl.col = 1
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。我尝试了您写的内容,然后返回:“(”附近:语法错误: (2认同)