【问题标题】:Can I use column labels in SELECT list as columns?我可以将 SELECT 列表中的列标签用作列吗?
【发布时间】:2011-11-17 07:31:23
【问题描述】:

假设我有一张这样的桌子:

编号 |姓名 | 1 |可以添加权限 |

我可以以某种方式引用选择列表中已定义的列标签吗? 写这样的东西:

select id as A, A > 1 as B from auth_permission LIMIT 1;

好像没有。

但也许有人知道一些切肉刀技巧?我使用 PostgreSQL,以防万一。

【问题讨论】:

  • 我见过的唯一 SQL 产品是 Access(虽然这不是推荐!)你最好的选择是重复每个计算并希望优化器发现重复 :)
  • 那么,这个问题已经解决了吗,还是您还在寻找答案?如果是后者,请提供有关该问题的更多信息,以便构建一个包含该问题的视图。
  • 问题被回避,但主题问题的答案是“已经定义的列不能在选择列表中使用”

标签: sql postgresql select subquery


【解决方案1】:
SELECT a, 
       a > 1 AS b 
FROM   (SELECT id AS a 
        FROM   auth_permission 
        LIMIT  1) subsel 

【讨论】:

  • 聪明。但我有 9 列我想以其他“真实”列为基础。
  • 使用视图?在不了解更多问题的情况下,很难说出适合您的解决方案。
  • 我在 ORDER BY 中使用的复杂条件很少。这些条件是从连接表、子查询结果、逻辑表达式的列中计算出来的。查询本身很庞大,连接很少,由 Django ORM 生成。我可以在 select 列表中添加额外的列,在 from 子句中添加表,但很难想象如何使用 ORM 嵌套查询以在以后获得正常的查询集。
  • 我建议您关闭此问题并打开一个新问题,在其中更具体地描述您的问题。由于您刚刚提供给我的信息更有趣,因此会有更多人有兴趣解决它。
猜你喜欢
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多