pgsql 實現 如mysql一樣的子查詢列可引用之前的計算列?
作者:由 知乎使用者 發表于 收藏時間:2022-04-16
MySQL的寫法其他資料庫不支援,建議使用標準SQL中的遞迴查詢(WITH)實現:
WITH
t1
AS
(
select
1
n0
),
t2
AS
(
SELECT
n0
*
3
AS
n1
FROM
t1
)
SELECT
n1
,
n1
*
2
FROM
t2
;
上面的t1相當於臨時表,t2是基於t1的臨時表,這種方法定義的臨時表可以引用前面的臨時表。
這種寫法至少MySQL、PostgreSQL、SQL Server以及SQLite完全一致,Oracle只需要加上 from dual,本質上也是一樣的。