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

hiển thị khoảng trống cho các giá trị lặp lại trong một tập kết quả

Kết thúc truy vấn hiện tại của bạn trong CTE thêm ROW_NUMBER OVER PARTITION BY cột của bạn, sẽ tạo RN cho mỗi nhóm giá trị. Trong truy vấn bên ngoài, chỉ cần sử dụng CASE để chọn các giá trị trong đó GRP_RN =1 và chuỗi rỗng nếu không.

WITH CTE AS 
(
    Select  distinct top 100000 
        o.EventSetName,       
        o.EventSetDisplay,
        o.EventSetDescription,
        o.ChildSetName,
        ROW_NUMBER() Over (Order By f.ChildSetName) RN,
        f.DocumentDispSequence,
        f.SectionDispSequence,
        o.ObsSetDispSequence,
        null  as NullColumnNeedsName,
        ROW_NUMBER() OVER (PARTITION BY o.EventSetName, o.EventSetDisplay,o.EventSetDescription ORDER BY f.ChildSetName) GRP_RN
    From   ##ObsSetLevel o,
    INNER JOIN ##Final f ON f.ChildSetName = o.EventSetName and o.EventSetName = @variableName
)
SELECT
    CASE WHEN GRP_RN = 1 THEN o.EventSetName ELSE '' AS EventSetName,
    CASE WHEN GRP_RN = 1 THEN o.EventSetDisplay ELSE '' AS EventSetDisplay,
    CASE WHEN GRP_RN = 1 THEN o.EventSetDescription ELSE '' AS EventSetDescription,
    other columns
FROM CTE  
Order By RN asc, DocumentDispSequence asc, SectionDispSequence asc, o.ObsSetDispSequence asc

Tái bút:Tôi cũng đã sửa việc bạn sử dụng các phép nối kiểu cũ. Cách sử dụng đó đã lỗi thời hơn 20 năm trước với sự ra đời của các tiêu chuẩn SQL-92. Bạn nên tránh sử dụng chúng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mục đích của bảng hệ thống master..spt_values ​​là gì và ý nghĩa của các giá trị của nó là gì?

  2. Cách tìm bản ghi trùng lặp bằng cách sử dụng mệnh đề Group by và Have trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 132

  3. Các tính năng hàng đầu cần tìm trong Công cụ giám sát máy chủ SQL

  4. Làm cách nào để thu nhỏ Cơ sở dữ liệu SQL Server của tôi?

  5. Nhiều chỉ mục so với nhiều cột