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

Truy vấn SQL:Làm cách nào để lấy dữ liệu của hàng có số trực tiếp 1000?

row_number là cách tiếp cận tốt nhất nhưng vì bạn chỉ muốn một hàng duy nhất, hãy chắc chắn xem xét kế hoạch. Có thể tốt hơn nếu xác định hàng mong muốn, sau đó kết hợp trở lại bảng ban đầu để truy xuất các cột bổ sung.

WITH T1
     AS (SELECT *,
                ROW_NUMBER() OVER (ORDER BY number) AS RN
         FROM   master..spt_values)
SELECT name,
       number,
       type,
       low,
       high,
       status
FROM   T1
WHERE  RN = 1000;

Cung cấp

WITH T2
     AS (SELECT number,
                type,
                name,
                ROW_NUMBER() OVER (ORDER BY number) AS RN
         FROM   master..spt_values)
SELECT TOP 1 C.name,
             C.number,
             C.type,
             C.low,
             C.high,
             C.status
FROM   T2
       CROSS APPLY (SELECT *
                    FROM   master..spt_values v
                    WHERE  v.number = T2.number
                           AND v.type = T2.type
                           AND ( v.name = T2.name
                                  OR ( v.name IS NULL
                                       AND T2.name IS NULL ) )) C
WHERE  RN = 1000;  

Cung cấp



  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ôi phục cơ sở dữ liệu từ các tệp .mdf và .ldf của SQL Server 2008

  2. Lỗi tràn số học khi chuyển đổi biểu thức thành kiểu dữ liệu ngày giờ

  3. SQL Server SAU KHI CHÈN kích hoạt không thấy hàng vừa chèn

  4. Kiểu dữ liệu text và varchar không tương thích trong toán tử bằng

  5. Tập lệnh khoảng không quảng cáo thu thập SQL Server -3