sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik voorkomen dat ik een berekende uitdrukking meerdere keren herhaal in dezelfde selectie?

U kunt kruistoepassing gebruiken

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

of een CTE

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

of een subquery (ook bekend als een afgeleide tabel)

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

Het is niet mogelijk om de kolomalias te gebruiken in dezelfde lijst met velden als deze is gedeclareerd.



  1. mysql-query werkt wanneer uitgevoerd in phpmyadmin, maar geeft een foutmelding wanneer uitgevoerd in php

  2. Kan geen gegevens ophalen uit MySQL-tabel die overeenkomen met specifieke uid

  3. MySQL PHP-incompatibiliteit

  4. postgresql-poortverwarring 5433 of 5432?