2014-04-29 1 views
0

나는 temp 테이블을 만들고, 레코드를 삽입하고, 순서를 지정한 다음 나중에 union을 사용할 수 있지만 대체 경로를 찾고 있습니다. 나는 cte를 시도했지만, 나의 일원화 된 기록이 "위에"머물러 있지 않기 때문에 작동하지 않는 모든 것을 주문해야했다.데이터를 정렬하고 데이터 세트의 첫 번째 위치에 레코드를 추가하려면 어떻게합니까?

기본적으로 ID INT, Name VARCHAR (MAX) 필드를 사용할 수 있으며 반환 세트의 행 [0] 위치에 항목을 추가하기 전에 이름을 ORDER BY로 지정하려고합니다. 제가 유니온 뒤에 주문하면 행 [0]에서 원하는 행이 그 행렬과 함께 주문됩니다.

아이디어가 있으십니까?

답변

1

유니온 쿼리로 올바른 길을 가고있었습니다. 정적 값을 사용하여 강제로 정렬합니다.

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

매우 똑똑합니다. 고마워. – Yatrix

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 
+0

임시 테이블은 내가 피하고 싶었습니다. – Yatrix

관련 문제