2016-09-13 2 views
0

У меня есть следующий (редактировать) select, используя view и case для ORDER BY caluse:SQL по делу не работает

SELECT * 
FROM VW_View 
ORDER BY CASE 
WHEN Initials = 'New' 
    THEN '1' 
    ELSE TeamID 
END 
ASC 

Это прекрасно работает на моей локальной базе данных, и возвращает это:

enter image description here

Как и ожидалось

Однако на тестовой базе данных, он возвращает это:

enter image description here

Не так, как и следовало ожидать, например, порядок по п не работает.

Взгляды точно такие же, так почему бы предложение не было последовательным?

+0

Is 'TeamID'' Pending'? Почему вы ожидаете этого вообще? –

+1

Показать значения, присутствующие в 'TeamID' –

+0

Добавленные значения - все они 1 и одинаковы для обеих баз данных – Alex

ответ

3

Поскольку вы не определяете вторичный вид, когда TeamId = 1, порядок не определен. Добавить второе условие сортировки или изменить на что-то вроде ...

SELECT * 
FROM VW_View 
ORDER BY CASE 
WHEN Initials = 'New' 
    THEN '0' 
    ELSE TeamID 
END 
ASC 
+0

Я буквально только что сработал! – Alex

Смежные вопросы