2016-08-19 9 views
-1

を追加するには、ここに私のSQLコードです:SQL注文と行

SELECT DISTINCT 
    CASE 
     WHEN RS != '' 
      THEN RS 
      ELSE 'Unspecified RS' 
    END AS 'RS Name' 
FROM 
    OutstandingClaims 

それは私がこのリストの一番上のエントリ「すべて」を持ちたい

Alexa 
Bob 
Cary 
Dylan 
... 
Unspecified RS 
... 
etc. 

を返します。人の名前を変更せずに私ができることはありますか?

+0

何すべての 'エントリ? 「未指定RS」? –

+0

指定されていない場合は、指定されていない場合のみです。 – mattz608

+0

出力に「すべて」を自動的に追加しますか? – techspider

答えて

1
SELECT 'All' AS 'RS Name' 
union all 
SELECT DISTINCT CASE WHEN RS <> '' 
        THEN RS 
        ELSE 'Unspecified RS' 
       END 
FROM OutstandingClaims 
+0

これはありがとうございました! – mattz608

+0

しかし、必要に応じてレコードをソートすることはありません。 –

0

あなたはUNIONは、デフォルトでは個別のレコードを返します

SELECT 'All' AS [RS Name], 0 AS sort 
UNION 
SELECT CASE WHEN RS != '' 
     THEN RS 
     ELSE 'Unspecified RS' 
     END AS [RS Name], 
     1 AS sort 
FROM OutstandingClaims 
ORDER BY sort, [RS Name] 

注意をソートするための余分な列を追加しようとすることができます。 DISTINCTキーワードは必要ありません。

0

正確に何を求めているのかよく分かりません。しかし、すべての文字列が常にの上部に表示されるようにする必要がある場合は、ユニオンと別の列を使用してすべてを並べ替えることができます。

ので、

Select x.rsname from(select 'All' AS rsname, 1 as order 
    union 
    select distinct (case when RS != '' then RS else 'Unspecified RS' end) AS rsname, 2 as order 
from 
OutstandingClaims) x order by x.order