Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pesan dengan tidak berfungsi saat dimasukkan ke tabel temp

Tabel SQL mewakili tidak berurutan set. Apakah ada yang tidak jelas tentang ini?

Saat Anda SELECT dari sebuah tabel, maka hasilnya tidak berurutan . Satu-satunya pengecualian adalah ketika Anda menggunakan ORDER BY dalam kueri luar. Jadi, sertakan ORDER BY dan hasilnya akan teratur.

EDIT:

Anda dapat menghilangkan pekerjaan untuk pengurutan dengan memperkenalkan kunci utama berkerumun.

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

Kemudian ketika Anda melakukannya:

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

Kunci utama yang dikelompokkan di #temp dijamin dalam urutan yang ditentukan oleh order by . Kemudian pertanyaannya:

select *
from #temp
order by id;

akan mengembalikan hasil secara berurutan, menggunakan indeks berkerumun. Penyortiran tidak diperlukan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana memilih data satu minggu terakhir dari tanggal hari ini

  2. Eskalasi Kunci SQL Server

  3. Cara menggabungkan hasil dua kueri menjadi satu kumpulan data

  4. Bagaimana cara menanyakan output ini di SQL server

  5. Tentukan Objek Yang Referensi Tabel di SQL Server