92

この質問についてお役に立てれば幸いです。私はOracle SQL(このビューのSQL Developer)を使用しています...

次の列を持つテーブルがある場合:

  • 列A (数値)
  • 列 B (数値)
  • 列 C (数値)

私の見解では、

Select  
ColumnA,
ColumnB,
ColumnA + ColumnB As calccolumn1

この時点で、 calccolumn1 を使用したいのですが、ただ言うことはできません...

Select  
ColumnA,
ColumnB,
ColumnA + ColumnB As calccolumn1
calccolumn1 / ColumnC as calccolumn2

ある種のサブクエリが必要だと思います..しかし、ここであなたの助けが必要です... 同じクエリ内の別の計算で calccolumn1 を使用できるようにクエリをどのように表現すればよいでしょうか? それは If then または Case when かもしれませんが、最終的には派生した数値です。

4

5 に答える 5

3

SQL Serverでは、

With CTE を使用してこれを行うことができます

WITH common_table_expression (Transact-SQL)

CREATE TABLE tab(ColumnA DECIMAL(10,2), ColumnB DECIMAL(10,2), ColumnC DECIMAL(10,2))

INSERT INTO tab(ColumnA, ColumnB, ColumnC) VALUES (2, 10, 2),(3, 15, 6),(7, 14, 3)

WITH tab_CTE (ColumnA, ColumnB, ColumnC,calccolumn1)  
AS  
(  
Select
    ColumnA,
    ColumnB,
    ColumnC,
    ColumnA + ColumnB As calccolumn1
  from tab
)  

SELECT
  ColumnA,
  ColumnB,
  calccolumn1,
  calccolumn1 / ColumnC AS calccolumn2
FROM  tab_CTE

DBFiddle デモ

于 2020-04-04T17:26:37.057 に答える