1
如果我這樣做在SQLite3的:如何使用列別名選擇值?
SELECT *
FROM (VALUES (1), (2), (3)) AS "tbl.col"
WHERE "tbl"."col" = 1
我得到:沒有這樣的列:tbl.col
什麼是正確的方法是什麼?
謝謝!
如果我這樣做在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
我發現這個question它回答我的問題。
SELECT "tbl"."" AS "col"
FROM (VALUES (1), (2), (3)) AS "tbl"
基本上,在VALUES第一列名是一個空字符串「」,二是「1」,三是「2」,等等......
希望這有助於其他人。
謝謝。我試過你寫的東西,我回來了:附近「(」:語法錯誤: – Agendum
另外,我正在使用DB Browser進行SQLite測試。是否有可能這是該工具的限制? – Agendum
是的,我能夠確認其他SQLite工具使用您提供的語法報告相同的錯誤。例如,這個在線SQLite工具:[link](http://wdbengine.sourceforge.net/)。 – Agendum