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

опростете SQL израза с помощта на CTE

Използвайте CROSS APPLY , който може да се използва за дефиниране на полета с псевдоними и след това да се препраща към тях:

SELECT A.a, 
       A.b, 
       B.c,
       CalculatedValue,
       B.d
FROM    
       dbo.TableA A 
INNER JOIN
        dbo.TableB B 
        ON (...)
CROSS APPLY 
        (SELECT (CASE WHEN ... THEN ... ELSE ... END)) CxA(CalculatedValue)
WHERE CalculatedValue BETWEEN @DayStart AND @DayEnd
GROUP BY A.a, CalculatedValue, B.c

CxA е просто псевдоним и можете да го наименувате както искате.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BUK INSERT с непоследователен брой колони

  2. Обработка на отрицателни стойности с sql

  3. Конвертирайте nvarchar в bigint в Sql сървър 2008

  4. Прихващане на данни за промяна или проследяване на промените – същото като традиционната таблица за одитна пътека?

  5. Как да се свържете с SQL Server по подразбиране инстанция и SQL Server наименувани екземпляри - SQL Server / TSQL Урок, част 2