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

SQL Server 2005 - nhóm các giá trị, chỉ hiển thị các thay đổi

Tôi sẽ sử dụng một biểu thức bảng phổ biến để bao gồm một số hàng tuần tự dựa trên date_loaded, sau đó sử dụng nó trong một tự nối, như sau:

CREATE TABLE #temp (
    value INT,
    date_loaded DATETIME
)

INSERT INTO #temp VALUES (1,'2012-03-7')
INSERT INTO #temp VALUES (1,'2012-03-6')
INSERT INTO #temp VALUES (1,'2012-03-5')
INSERT INTO #temp VALUES (3,'2012-03-4')
INSERT INTO #temp VALUES (4,'2012-03-3')
INSERT INTO #temp VALUES (1,'2012-03-2')

;WITH cte AS (SELECT ROW_NUMBER() OVER (ORDER BY date_loaded) AS n, value, date_loaded FROM #temp)
SELECT t2.value, t2.date_loaded
FROM cte t2 LEFT JOIN cte t1 ON t2.n = t1.n + 1
WHERE t2.value <> ISNULL(t1.value, -1)

DROP TABLE #temp



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể hủy quá trình khôi phục giao dịch SPID

  2. Theo dõi tuổi thọ trang trong SQL Server

  3. Cách tạo kiểu bảng trong Sql Server 2005

  4. Sự khác biệt giữa hàm nội tuyến và chế độ xem

  5. SQL Server 2012 truy vấn dữ liệu Access 2007 sử dụng lỗi OPENROWSET