Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

sederhanakan pernyataan SQL dengan menggunakan CTE

Gunakan CROSS APPLY , yang dapat digunakan untuk mendefinisikan bidang alias dan merujuk ke bidang tersebut:

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 hanyalah sebuah alias dan Anda dapat menamainya apa pun yang Anda suka.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pekerjaan Agen SQL:Tentukan berapa lama telah berjalan

  2. Tabel Partisi dan Paralelisme SQL Server 2008

  3. EF 4.0 Guid atau Int sebagai Kunci utama

  4. Apa yang membuat pernyataan SQL sargable?

  5. Bagaimana COUNT_BIG() Bekerja di SQL Server