Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

đơn giản hóa câu lệnh SQL bằng cách sử dụng CTE

Sử dụng CROSS APPLY , có thể được sử dụng để xác định các trường bí danh và sau đó tham chiếu đến chúng:

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 chỉ là một bí danh và bạn có thể đặt tên nó bất cứ thứ gì bạn thích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng mệnh đề với SQL Server 2008

  2. Làm cách nào tôi có thể hiển thị tất cả thời gian giữa 2 thông số thời gian khác nhau

  3. Lỗi cú pháp gần 'of' trong điều kiện tìm kiếm toàn văn bản 'control of'

  4. SQL:Lỗi, đạt đến giới hạn dịch vụ Biểu thức?

  5. Xử lý thứ nguyên SSAS làm cho các biện pháp cơ bản không được xử lý