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

Thủ tục đã lưu trữ, phép nối bên trái cung cấp cho tôi các hàng trùng lặp, nhưng tôi muốn hàng trên cùng (1) cho mỗi bản ghi có cùng ID

Đầu tiên, tôi đang tìm kiếm thứ gì đó sẽ không cung cấp cho tôi các cột rỗng với phép nối bên trái, vì vậy tôi đã sử dụng,

coalesce(TableC.SomeColumn, -1) As SomeColumnHeHe

Sau đó, tôi gặp phải vấn đề trong đó tôi chỉ cần chọn top 1 từ kết hợp bên trái, vì vậy tôi đã sử dụng ÁP DỤNG NGOÀI TRỜI, như được hiển thị bên dưới,

SELECT Top(1)
    TableA.*,
        TableB.*,
        someFunction(TableA.ID),
        coalesce(TableC.someColumn, -1) As SomeColumnExample,
        TempTable.IDA
 FROM 
    TableA INNER JOIN TableB ON TableA.ID = TableB.IDA
    OUTER APPLY
         (SELECT TOP(1) * FROM TableC where TableC.IDA = TableA.IDA Order By DateAdded Desc )  As TempTable

Where TableA.ID = @ParaID
Order By TableC.DateTime Desc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các hàng riêng biệt trong khi nhóm theo giá trị tối đa

  2. Cách trích xuất dữ liệu từ cột xml trong sql 2008

  3. SQL Server Dynamic Pivot trong UDF trả về bảng

  4. Cách trả về một chuỗi con từ một chuỗi trong SQL Server bằng cách sử dụng hàm SUBSTRING ()

  5. Truyền đối chiếu các biến nvarchar trong t-sql