sql >> Databáze >  >> RDS >> Sqlserver

Jak se mohu vyhnout opakování vypočítaného výrazu vícekrát ve stejném výběru?

Můžete použít křížovou aplikaci

SELECT T2.[ADD],
       T2.[ADD]*2,
       T2.[ADD]/2
FROM @T AS T1
  CROSS APPLY (SELECT T1.NUM1+T1.NUM2) AS T2([ADD])

nebo CTE

WITH C AS
(
  SELECT NUM1+NUM2 AS [ADD]
  FROM @T
)
SELECT [ADD],
       [ADD]*2,
       [ADD]/2
FROM C

nebo poddotaz (také známý jako odvozená tabulka)

SELECT T.[ADD],
       T.[ADD]*2,
       T.[ADD]/2
FROM (
       SELECT NUM1+NUM2 AS [ADD]
       FROM @T
     ) AS T

Není možné použít alias sloupce ve stejném seznamu polí, v jakém je deklarován.



  1. Proměnné MySQL ukládající název databáze

  2. Kdy je lepší ukládat příznaky jako bitovou masku, než používat asociativní tabulku?

  3. Připojení k GCP Cloud SQL z App Engine v samostatném projektu

  4. Jak importovat databázi Oracle ze souboru dmp a souboru protokolu?