Вставить в таблицу из другой таблицы после сортировки данных первой таблицы - PullRequest
2 голосов
/ 27 марта 2012

Я делаю что-то подобное в SP,

insert into @FilteredTbl select * from @MasterTbl

, но теперь проблема в том, что я хочу отсортировать данные @MasterTbl перед добавлением в @ FilteredTbl,

Как я могу это сделать

Ответы [ 6 ]

6 голосов
/ 27 марта 2012

Может быть, что-то вроде этого:

INSERT INTO @FilteredTbl 
SELECT * FROM @MasterTbl AS tbl
ORDER BY tbl.OrderbyColumn
1 голос
/ 08 сентября 2016

Попробуйте следующий метод, чтобы вставить результат сортировки во временную таблицу.Используйте ROW_NUMBER для ORDER BY результата таблицы

DECLARE @FilteredTbl AS TABLE
(
    RowID INT
    [Column_1]
    [Column_2]
      .
      .
)

insert into @FilteredTbl 
select ROW_NUMBER()OVER(ORDER BY [ShortColumn]),[Field_1],[Field_2]... from @MasterTbl
0 голосов
/ 07 января 2016

Вы должны добавить идентификатор вашей таблицы, тогда она будет отсортирована вот так

CREATE TABLE #test (
    s int IDENTITY (1, 1),
    ID int,
    Name varchar(50),
    part int
);

INSERT INTO  #test (ID,Name,Part)
SELECT ID, Name, Part FROM Table_1 ORDER BY ID DESC
SELECT * FROM #test 
0 голосов
/ 27 марта 2012
INSERT INTO @FilteredTbl SELECT * FROM @MasterTbl AS mtb ORDER BY mtb.OrderbyColumn [desc]

Здесь desc не обязателен, если вы хотите упорядочить по столбцу в порядке убывания, чем добавить их, иначе нет необходимости добавлять

0 голосов
/ 27 марта 2012

Пожалуйста, сортируйте таблицу, как вы хотите, прежде чем вставлять в другую таблицу.

Как:

Select * From @MasterTbl m Order By m.ColumnName

, затем вставьте в новую таблицу

Insert Into @FilterTbl Select * From @MasterTbl m Order By m.ColumnName [DESC]

Вы можететакже отфильтруйте ваш @MasterTbl, используя Where Clause

0 голосов
/ 27 марта 2012

Вы можете использовать порядок по классам в операторе выбора

insert into @FilteredTbl 
    select * from @MasterTbl
    order by <column name>
...