如何订购数据并将记录添加到数据集的第一个位置?

时间:2014-04-29 15:25:03

标签: sql sql-server-2012

我知道我可以创建临时表,插入记录,订购它然后再使用union,但我正在寻找替代路线。我尝试了一个cte,但我不得不订购整个不起作用的东西,因为我的工会记录并没有停留在顶部"。

基本上,我能够使用Id INT,Name VARCHAR(MAX)字段,并且我希望在返回集中的行[0]位置添加条目之前按ORDER BY Name。如果我在联合之后订购,我在第[0]行想要的行就会被订购。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您使用联合查询处于正确的轨道上。使用静态值强制排序。

select 0 sortfield, '' name, etc
union 
select 1 sortfield, name, etc
from etc
order by sortfield, name.

答案 1 :(得分:0)

CREATE TABLE #temp (
    idnt INT IDENTITY(2) NOT NULL --This begins the identity col with a value of 2
    ,Id INT
    ,Name VARCHAR(MAX)
)
INSERT INTO #temp
SELECT
    ...
FROM myTable
ORDER BY Name


CREATE TABLE #tempAPPEND (
    idnt INT IDENTITY(1) NOT NULL --This begins the identity col with a value of 1
    ,Id INT
    ,Name VARCHAR(MAX)
)
INSERT INTO #tempAPPEND (Id, Name)
VALUES ('34384','Pinal Dave') -- SAMPLE VALUES


SELECT * FROM #temp
UNION
SELECT * FROM #tempAPPEND
ORDER BY idnt