我在SP中做这样的事情,
insert into @FilteredTbl select * from @MasterTbl
但现在问题是我希望在添加到@FilteredTbl之前对@MasterTbl的数据进行排序,
我该怎么做?
答案 0 :(得分:6)
也许是这样的:
INSERT INTO @FilteredTbl
SELECT * FROM @MasterTbl AS tbl
ORDER BY tbl.OrderbyColumn
答案 1 :(得分:1)
尝试以下方法将排序结果插入临时表。使用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
答案 2 :(得分:0)
您可以在select语句中按类使用
insert into @FilteredTbl
select * from @MasterTbl
order by <column name>
答案 3 :(得分:0)
在插入另一个表之前,请根据需要对表进行排序。
像:
Select * From @MasterTbl m Order By m.ColumnName
然后插入新表
Insert Into @FilterTbl Select * From @MasterTbl m Order By m.ColumnName [DESC]
您还可以使用Where
条款
答案 4 :(得分:0)
INSERT INTO @FilteredTbl SELECT * FROM @MasterTbl AS mtb ORDER BY mtb.OrderbyColumn [desc]
如果您希望按列顺序按降序排序,则desc是可选的,否则无需添加
答案 5 :(得分:-1)
你应该为你的表添加标识然后它将按那样排序
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