DECLARE @Table1 TABLE (ID INT IDENTITY(1,1), Field1 INT, FieldSomethingElse VARCHAR(10))
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (1, 'b')
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (2, null)
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (765, 'a')
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (NULL, 'd')
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (NULL, 'f')
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (76, null)
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (3, 'r')
INSERT INTO @Table1 (Field1, FieldSomethingElse) VALUES (40, 'b')
declare @flag bit = 0;
SELECT *
FROM @Table1
ORDER BY
case when @flag = 1 then ISNULL(Field1,0) else 0 end desc , ID desc
SELECT *
FROM @Table1
ORDER BY
case when @flag = 1 then ISNULL(Field1,0) end desc, ID desc
Есть ли разница, если я напишу
1. case when @flag = 1 then ISNULL(Field1,0) else 0 end desc, ID desc
или
2. case when @flag = 1 then ISNULL(Field1,0) end desc, ID desc
Мне посоветовали использовать вариант 1, но для меня оба варианта одинаковы, потому что я вижутот же результат.Есть ли разница?
как параметры 1 и 2 влияют на сортировку?