我想在查询中重用包含非字母字符的别名,例如:

 SELECT 42 AS "the#answer", "the#answer"+8 AS "fifty";


我想要的输出:42|50;我得到的输出是:42|8

我已经尝试了几乎所有可能的引号类型组合,并查找了文档,但似乎找不到有效的解决方案。

任何想法?

最佳答案

SQL不能从引入它的同一输出子句中引用别名。 (它与引用无关,后者只允许使用否则无效的标识符;某些SQL供应商会抛出错误,但SQLite在处理这种情况时显得“更加放松”。)

您可以使用嵌套查询(sqlfiddle)。

SELECT fortytwo, fortytwo + 8 as fifty
FROM (
    SELECT 42 AS fortytwo)


之所以有效,是因为引用的标识符fortytwo是在“上一个”输出子句中引入的。

关于sql - SQLite:重用带引号的别名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22112575/

10-12 03:09