2012-04-20 4 views
2

SSRS에서 SSMS 2008 R2 보고서 매개 변수 용 sproc을 개발 중입니다.SQL 쿼리를 재정렬하는 방법은 무엇입니까?

Select 
    Null As [program_id], 
    '-All-' As [program_name] 
UNION ALL 
SELECT DISTINCT 
    [program_info_id] AS [program_id], 
    [program_name] 
FROM [evolv_reports].[dbo].[programs_view] 
Order By [program_name] 

을 그러나 문제는 지금 "(MS) 가족 보존 서비스"라는 이름의 새 program_name은 존재한다 : 나는 현재이 스크립트와이 매개 변수를 채우는하고있다. 본 프로그램은 "-All-"앞에 나열되어 있으므로이 보고서 매개 변수는 더 이상 "-All-"로 기본 설정되지 않습니다. "-All-"을 어떻게 다시 나열합니까? 여기에 내 현재 매개 변수 출력의 일부는 다음과 같습니다

program_id program_name 
406B3C38-D8D3-4ED5-AC5B-9013D3662931 (MS) Family Preservation Services 
NULL         -All- 
F6E2C172-2BFB-45BC-B870-E7BC2414DD91 Adoptions - Agency 
C766E084-AB03-41AD-92B9-494FF3975E10 Adoptions - Subcontract 
C21DACE0-8F34-433D-BE24-A79DE322F7EF AL Step down foster care 

답변

2
SELECT [program_id], [program_name] FROM 
(
    Select 
    Null As [program_id], 
    '-All-' As [program_name] , 
    0 as num1 
    UNION ALL 
SELECT DISTINCT 
    [program_info_id] AS [program_id], 
    [program_name] , 
    1 as num1 
)a 
ORDER BY a.num1, a.[program_name] -- or just by a.num1 if you don't need to sort by program_name 
+0

감사합니다! 이것은 효과가있다! – salvationishere

0

아마 이런 식으로 뭔가 :

SELECT 
    * 
FROM 
(
Select 
    Null As [program_id], 
    '-All-' As [program_name] 
UNION ALL 
SELECT DISTINCT 
    [program_info_id] AS [program_id], 
    [program_name] 
FROM [evolv_reports].[dbo].[programs_view] 
) AS T 
Order By (CASE WHEN [program_id] IS NULL THEN 0 ELSE 1 END), [program_id] 
관련 문제