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

Ví dụ trong cuộc sống thực, khi nào sử dụng ÁP DỤNG NGOÀI / CHÉO trong SQL

Một số cách sử dụng cho APPLY là ...

1) Truy vấn N hàng đầu trên mỗi nhóm (có thể hiệu quả hơn đối với một số cấp số)

SELECT pr.name,
       pa.name
FROM   sys.procedures pr
       OUTER APPLY (SELECT TOP 2 *
                    FROM   sys.parameters pa
                    WHERE  pa.object_id = pr.object_id
                    ORDER  BY pr.name) pa
ORDER  BY pr.name,
          pa.name 

2) Gọi một hàm có giá trị bảng cho mỗi hàng trong truy vấn bên ngoài

SELECT *
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)

3) Sử dụng lại bí danh cột

SELECT number,
       doubled_number,
       doubled_number_plus_one
FROM master..spt_values
CROSS APPLY (SELECT 2 * CAST(number AS BIGINT)) CA1(doubled_number)  
CROSS APPLY (SELECT doubled_number + 1) CA2(doubled_number_plus_one)  

4) Giải nén nhiều hơn một nhóm cột

Giả sử 1NF vi phạm cấu trúc bảng ....

CREATE TABLE T
  (
     Id   INT PRIMARY KEY,

     Foo1 INT, Foo2 INT, Foo3 INT,
     Bar1 INT, Bar2 INT, Bar3 INT
  ); 

Ví dụ sử dụng 2008+ VALUES cú pháp.

SELECT Id,
       Foo,
       Bar
FROM   T
       CROSS APPLY (VALUES(Foo1, Bar1),
                          (Foo2, Bar2),
                          (Foo3, Bar3)) V(Foo, Bar); 

Vào năm 2005 UNION ALL có thể được sử dụng thay thế.

SELECT Id,
       Foo,
       Bar
FROM   T
       CROSS APPLY (SELECT Foo1, Bar1 
                    UNION ALL
                    SELECT Foo2, Bar2 
                    UNION ALL
                    SELECT Foo3, Bar3) V(Foo, Bar);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích thước tối đa cho một truy vấn SQL Server? Mệnh đề IN? Có một phương pháp tiếp cận tốt hơn không

  2. Xóa một bản ghi khỏi Entity Framework?

  3. Sử dụng OBJECTPROPERTY () để tìm hiểu xem một Bảng có phải là một Bảng hệ thống trong SQL Server hay không

  4. Cách hoạt động của OBJECTPROPERTY () trong SQL Server

  5. Các loại con trỏ máy chủ SQL - Con trỏ tĩnh trong SQL Server là gì | Hướng dẫn sử dụng SQL Server / TSQL