2016-08-19 6 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

Что 'Все' запись? «Unspecified RS»? –

+0

Нет Unspecified для тех, кто там никого нет. – 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

Вы могли бы попытаться добавить дополнительный столбец для сортировки

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] 

Обратите внимание, что UNION возвращает различные записи по умолчанию. Не требуется ключевое слово DISTINCT.

0

Я не совсем уверен, что именно вы спрашиваете. Но если вам просто нужно отобразить строку «Все» всегда вверху, то вы можете использовать union и другой столбец, чтобы заказать их все.

Так,

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