Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Подреждане, като не работи при вмъкване във временна таблица

SQL таблиците представляват неподредени комплекти. Има ли нещо неясно по въпроса?

Когато SELECT от таблица, тогава резултатите са неподредени . Единственото изключение е, когато използвате ORDER BY във външната заявка. Така че, включете ORDER BY и резултатите ще бъдат наред.

РЕДАКТИРАНЕ:

Можете да премахнете работата за сортирането чрез въвеждане на клъстериран първичен ключ.

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

Тогава, когато го направите:

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

Клъстърираният първичен ключ в #temp гарантирано е в реда, определен от order by . След това заявката:

select *
from #temp
order by id;

ще върне резултатите в ред, използвайки клъстерирания индекс. Няма да е необходимо сортиране.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Производителност на SQL Server за промяна на типа на данните за промяна на таблица, промяна на колона

  2. Как да реферирам един CTE два пъти?

  3. Клъстер срещу не-клъстер

  4. Съставен първичен ключ срещу допълнителен идентификационен номер колона?

  5. каква е разликата между клъстерен индекс и уникален индекс?