2014-04-02 2 views
2

회사 목록을 표시하는 SELECT 문이 있습니다.SQL select 문에 ALL을 추가하십시오.

SELECT distinct [Company] 
    FROM [Records] 

"ALL"항목을 반환 된 목록의 첫 번째 항목으로 어떻게 추가 할 수 있습니까?

실제로
select company 
from ((select distinct company, 1 as ordering from records) 
     union all 
     (select 'ALL', 0) 
    ) t 
order by ordering; 

는 것 같다 다음 작업 :

select 'ALL' as company 
union all 
select distinct company from records; 

그러나, SQL 서버는 그렇지 않습니다

+0

가'UNION'를 참조하십시오. 그러나 보장 결과를 얻으려면 전체 결과 집합을 기술적으로 ORDER BY해야합니다. 참고 http://blog.sqlauthority.com/2012/10/30/sql-server-union-all-and-order-by-how-to-order-table-separately-while-using-union-all/ – user2864740

답변

2

사용 union allorder by 노조와 시도 이것들이 순서대로 실행되는 것을 보증한다. 실제로, 나는이 진술이 ALL을 먼저 두지 않을 경우를 결코 발견하지 못했다. 그러나 내가 아는 한 보장하지는 않는다.

0

모든

SELECT 'ALL' 
    UNION ALL 
    SELECT distinct [Company] 
     FROM [Records] 
0
SELECT 'ALL' 
UNION ALL 
SELECT distinct [Company] 
FROM [Records] 
1

당신은 UNION ALL를 사용하기 위해 추가 할 수 있습니다

SELECT [Company] FROM 
    (SELECT 'All' as [Company], 0 as RecordOrder 
    UNION ALL 
    SELECT distinct [Company], 1 as RecordOrder 
    FROM [Records]) X 
ORDER BY RecordOrder 
관련 문제