sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg undgå at gentage et beregnet udtryk flere gange i det samme udvalg?

Du kan bruge krydsanvend

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

eller en CTE

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

eller en underforespørgsel (også kendt som en afledt tabel)

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

Det er ikke muligt at bruge kolonnealiaset i samme feltliste, som det er deklareret.



  1. Hvordan opdeles en varchar-kolonne som flere værdier i SQL?

  2. SQL Server rekursiv selvtilslutning

  3. Hvordan skriver man en REST API?

  4. SQL Server:kombination af flere rækker til en række