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

Đặt hàng bằng cách không hoạt động khi chèn vào bảng tạm thời

Các bảng SQL đại diện cho không có thứ tự các bộ. Có điều gì đó không rõ ràng về điều này?

Khi bạn SELECT từ một bảng, thì kết quả là không có thứ tự . Một ngoại lệ là khi bạn sử dụng ORDER BY trong truy vấn bên ngoài. Vì vậy, hãy bao gồm ORDER BY và kết quả sẽ theo thứ tự.

CHỈNH SỬA:

Bạn có thể loại bỏ công việc để sắp xếp bằng cách giới thiệu một khóa chính được phân nhóm.

create table #temp (
    Id int identity(1,1) primary key clustered, 
    SKU varchar(10),
    QtyRec int,
    Expiry date,
    Rec date
);

Sau đó, khi bạn thực hiện:

insert into #temp(SKU, QtyRec, Expiry, Rec)
    select SKU, QtyRec, Expiry, Rec
    from @Data
    order by id;

Khóa chính được nhóm trong #temp được đảm bảo theo thứ tự được chỉ định bởi order by . Sau đó, truy vấn:

select *
from #temp
order by id;

sẽ trả về kết quả theo thứ tự, sử dụng chỉ mục được phân cụm. Không cần sắp xế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. Sắp xếp đúng các số có dấu chấm được lưu trữ dưới dạng ký tự trong SQL Server

  2. Câu lệnh Delete trong SQL rất chậm

  3. Kết hợp LIKE với IN trong SQL

  4. kết nối cơ sở dữ liệu?

  5. Làm cách nào để xuất XML bằng truy vấn SQL Server?