我想在查询中重用包含非字母字符的别名,例如:
SELECT 42 AS "the#answer", "the#answer"+8 AS "fifty";
我想要的输出:42|50
;输出我得到:42|8
。
我已经尝试了几乎所有可能的报价类型组合,并寻找文档,但我似乎找不到可行的解决方案。
有什么想法吗?
答案 0 :(得分:4)
SQL 不能引用来自引入它的同一输出子句的别名。 (它与引用无关,只引用其他无效的标识符;一些SQL供应商会抛出错误,但SQLite在处理这种情况时显得“更放松”。)
你可以使用嵌套查询(sqlfiddle)。
SELECT fortytwo, fortytwo + 8 as fifty
FROM (
SELECT 42 AS fortytwo)
这是有效的,因为引用的标识符fortytwo
是在“previous”输出子句中引入的。