Как сделать заказ по нескольким столбцам в sql - PullRequest
0 голосов
/ 23 января 2019

Мне нужна помощь в упорядочении моих результатов, возможно, с помощью комбинации регистров.Пожалуйста, смотрите изображение, показывающее существующий вывод, условия, желаемый вывод.Экспонируется в Excel для простоты, но на самом деле сделано в SQL.Я нуждаюсь в помощи ORDER BY.

enter image description here

select 
distinct 
CONCAT(selection.Selid,' - ' ,Selection.Name,' - ', DevOfficer.Description,' - ', SchemeCount.[Number of Schemes],' Schemes - ',case when selection.Project=1 then '[Project] ' when selection.Project=0 then '[Selection] '  else 'Error' end,convert(varchar,selection.lastupdated,103)) [String]
, selection.selid
, selection.lastupdated 
,case when selection.Project=1 then '[Project]'
when selection.Project=0 then '[Selection]'
else 'Error' end
,selection.lastupdated
from selection 
inner join SelScheme on selection.SelID =selscheme.SelID 
inner join DevOfficer on selection.DevOfficer = DevOfficer.DevOfficerID 
inner join (select selscheme.selid ,count(selscheme.SchemeID) [Number of Schemes] from SelScheme group by SelScheme.SelID) SchemeCount on schemecount.SelID = Selection.SelID 
where selection.masterselid = 0 
order by 
--selection.lastupdated  desc,
case 
when selection.Project=1 then '[Project]'
when selection.Project=0 then '[Selection]' 
 else 'Error' End Desc
 ,selid desc
 ,selection.lastupdated

Ответы [ 2 ]

0 голосов
/ 23 января 2019

* Ответ перед тем, как фрагмент кода был добавлен в вопрос OP *

Хотя я не уверен в названии таблицы SQL и даже в фактических именах полей SQL, ниже будет работать. Вам нужно перечислить все поля в ORDER BY на основе их приоритета;

     SELECT
     [ID]
    ,[Type]
    ,[Last Updated Date]
    FROM [SCHEMA].[TABLENAME]
    ORDER BY [Type] ASC, [ID] DESC, [Last Updated Date] DESC
0 голосов
/ 23 января 2019

это заказ вам нужно:

order by type desc,
         id desc, 
         case when isdate(last_updated_date) then last_updated_date else 0 end desc 

используйте модификаторы asc и desc, для каждого необходимого столбца заказа

...