Как настроить Order By так, чтобы нулевые строки упорядочивались исходя из более позднего ограничения - PullRequest
1 голос
/ 28 марта 2011

У меня есть следующий запрос:

SELECT  frst.FirstActionPath, scnd.SecondActionPath, frst.FirstIterationId, scnd.SecondIterationId, 
        frst.FirstTestRunId, scnd.SecondTestRunId, frst.FirstOrderId, scnd.SecondOrderId
FROM    @FirstRunData frst 
        FULL JOIN @SecondRunData scnd 
            ON frst.FirstIterationId = scnd.SecondIterationId
            AND frst.FirstActionPath = scnd.SecondActionPath

ORDER BY scnd.SecondIterationId, scnd.SecondOrderId, frst.FirstIterationID, frst.FirstOrderId

Это дает мне следующие результаты:

Results

Верхняя строка - это строка, которая находится вТаблица @FirstRunData, но не соответствует строке в строке @SecondRunData.

Как изменить порядок, чтобы дополнительная строка была после строки со значением 10000 в FirstOrderId?

1 Ответ

3 голосов
/ 28 марта 2011

Вы можете использовать COALESCE в предложении ORDER BY.Например,

ORDER BY COALESCE(scnd.SecondIterationId, frst.FirstIterationID, 9999),
COALESCE(scnd.SecondOrderId, frst.FirstOrderId, 9999),
frst.FirstIterationID, frst.FirstOrderId

Как-то так, мой адрес в вашем примере, но вам нужно будет изменить его в соответствии с вашими требованиями для всех условий.

...