Question

I know I can create a temp table, insert records, order it and then use union afterwards, but I'm looking for alternative routes. I tried a cte, but I had to order the entire thing which doesn't work as my unioned record doesn't stay "on top".

Basically, I have at able with Id INT, Name VARCHAR(MAX) fields and I want to ORDER BY Name before I add an entry at the row[0] position in the return set. If I order after the union, the row I wanted at row[0] gets ordered with it.

Any ideas?

Was it helpful?

Solution

You were on the right track with a union query. Force the sort with static values.

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

OTHER TIPS

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top