Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да избегна повтарянето на изчислен израз многократно в един и същ избор?

Можете да използвате кръстосано прилагане

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

или CTE

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

или подзаявка (известна също като извлечена таблица)

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

Не е възможно да използвате псевдонима на колоната в същия списък с полета, както е деклариран.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съобщение 8672, ниво 16, състояние 1, ред 1 Операторът MERGE се опита да АКТУАЛИЗИРА или ИЗТРИВА същия ред повече от веднъж

  2. Създайте връзка едно към много с помощта на SQL Server

  3. Как да импортирате bak файл в SQL Server Express

  4. UNIQUE - начин да имате уникални редове в таблицата?

  5. Как да получите датите за групиране на записи за период от 3 дни в SQL?