5

複雑な列計算を含む Sqlite のクエリがあるとします。

SELECT 1+1 AS a;

この計算を として選択したいのですaが、別の計算のコンポーネントとしても使用する必要があります。

SELECT 1+1 AS a, a+2 AS b;

残念ながら、これによりエラーが発生します。

Error: no such column: a

の計算をもう一度繰り返すだけでよいことはわかっていbます。

SELECT 1+1 AS a, 1+1+2 AS b;

しかし、複雑で費用のかかる操作であると仮定すると、後で再計算せず1+1に参照できる方法はありますか?SELECT

4

3 に答える 3

2

サブクエリを使用する必要があります。

SELECT c.d AS a, c.d + 2 AS b
FROM
  (SELECT 1+1 AS d) c

結果

| | | | b |
----------
| | 2 | 4 |
于 2013-01-09T18:32:55.837 に答える
0

このようなことができるかどうかを確認してください(テーブルのサブクエリを使用)

Select t.a+2 as b
    FROM (Select 1+1 as a from xyz) t 
于 2013-01-09T18:34:51.080 に答える
0

他の人によるすべての素晴らしい例に加えて、これはOracleで機能します:

SELECT a, a+2 b From
(
 SELECT 1+1 a From dual
)
/

Output:

A | B
-----
2 | 4
于 2013-01-09T18:46:42.517 に答える