Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uniknąć wielokrotnego powtarzania wyrażenia wyliczanego w tym samym zaznaczeniu?

Możesz użyć aplikacji krzyżowej

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

lub CTE

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

lub podzapytanie (znane również jako tabela pochodna)

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

Nie jest możliwe użycie aliasu kolumny na tej samej liście pól, w jakiej został zadeklarowany.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź wszystkie luki między liczbami całkowitymi w SQL

  2. Jak odwołać się do jednego CTE dwukrotnie?

  3. Sprawdź, czy użytkownik jest już zalogowany na stronie asp.net

  4. Nie można połączyć się z localDB w VS2012 — wystąpił błąd związany z siecią lub specyficzny dla instancji podczas nawiązywania połączenia z SQL Server...

  5. Obliczanie czasu trwania SQL