2012-04-20 6 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] 
関連する問題