3

SSRSでSSMS2008R2レポートパラメーターのsprocを開発しています。私は現在、このパラメーターに次のスクリプトを入力しています。

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)FamilyPreservationServices」という名前の新しい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
4

2 に答える 2

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
于 2012-04-20T14:35:56.337 に答える
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]
于 2012-04-20T14:41:37.353 に答える