如何在SQL中创建自定义缩写?

时间:2014-09-18 15:24:51

标签: sql database

是否可以在sql SELECT语句中“重用”sql参数?

与此伪代码类似:

<DEFINE> city as c, destination as d
SELECT c, d FROM thetable t INNER JOIN(SELECT c FROM...) etc

(所以每个参数必须只显示一次)?

2 个答案:

答案 0 :(得分:1)

大多数数据库都支持公用表表达式,但您将其表达为:

with t as (
      select city as c, destination as d
      from thetable
     )
select c, d
from t;

这可能不符合您的要求。公用表表达式实际上是子查询,在子查询中,您可以使用较短的名称。但是,它不会影响表中的列名,除非您包含更多CTE。

此外,CTE可能会在某些数据库中产生性能影响。有些数据库实际上实现了它们,创建了中间表,这可能会影响性能。其他数据库对其进行了优化。

答案 1 :(得分:0)

可以在postgres中使用common table expressions。据我所知,例如在mysql中是不可能的。不同的数据库管理系统可能与sql标准的兼容性不同。