SQl сортировать данные по нескольким столбцам - PullRequest
0 голосов
/ 09 мая 2020

Мне нужно отсортировать следующую таблицу из запроса:

SELECT *
FROM Likelihood WITH (NOLOCK) 
INNER JOIN Diagnosis ON Diagnosis.DiagnosisID = Likelihood.DiagnosisID
WHERE Likelihood.SessionID = (6768) 
ORDER BY Likelihood.Percentage DESC
    **Percentage   Diagnosis   Level**
    100            F43.10      HIGH
    83.333336      F84.5       HIGH
    75             F40.9       HIGH
    66.666664      F90.0       MEDIUM
    50             F51.09      MEDIUM

Сначала отсортировать по Likelihood.Percentage по убыванию.

Затем, когда Level = 'HIGH', затем отсортируйте по диагнозу по возрастанию. Столбец диагностики представляет собой строку.

Если уровень = 'MEDIUM', тогда отсортируйте по диагнозу по возрастанию

Полученная таблица должна быть:

**Percentage   Diagnosis   Level**
100            F43.10      HIGH
75             F40.9       HIGH
83.333336      F84.5       HIGH
50             F51.09      MEDIUM
66.666664      F90.0       MEDIUM

Я пробовал этот запрос, но не получил результатов:

SELECT *
FROM Likelihood WITH (NOLOCK) 
INNER JOIN Diagnosis ON Diagnosis.DiagnosisID = Likelihood.DiagnosisID
WHERE Likelihood.SessionID = (6768) 
ORDER BY 
    case when Level='HIGH' and Percentage > 70 then Diagnosis.Diagnosis end
    , case when Level='Medium' and Percentage between 50 and 69 then Diagnosis.Diagnosis end
    , Likelihood.Percentage DESC

Ответы [ 2 ]

2 голосов
/ 09 мая 2020

Если я правильно понял, вам просто нужно указать несколько порядков по условиям. Сначала Процент, затем Уровень (ВЫСОКИЙ должен быть перед СРЕДНИМ из-за сортировки по алфавиту c), а затем по диагнозу. Итак,

order by 
    Percentage DESC,
    Level ASC, 
    Diagnosis ASC;
0 голосов
/ 09 мая 2020

это пример сортировки по нескольким столбцам:

SELECT city,first_name,last_name
 FROM
sales.customers
ORDER BY
city DESC,
first_name ASC;

для получения дополнительной информации проверьте ссылку ниже

https://www.sqlservertutorial.net/sql-server-basics/sql-server-order-by/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...