T-SQL Server ORDER BY дата и нули последние - PullRequest
0 голосов
/ 24 октября 2019

Я готовлюсь к экзамену 70-761, и существует проблема, требующая поставить нулевые значения в конце при использовании заказа, я знаю, что результат будет таким:

выберите orderid, shippeddate from Sales.Ordersгде custid = 20 для каждого конкретного случая, когда shippeddate имеет значение null, а затем 1 else 0 end, shippeddate

я не знаю, почему 1 и 0 и как они влияют на результат, может кто-нибудь уточнить.

С наилучшими пожеланиями, Даниэль

1 Ответ

0 голосов
/ 24 октября 2019

В вашем предложении заказа есть два параметра, он хотел бы разделить две группы и затем продолжить сортировку элементов внутри этих групп

Сначала, потому что 0 меньше 1, поэтому все заказы без отправленной даты будут отправлены впрошлой. Тогда мы будем заказывать по shippeddate Пример:

orderID |shippeddate

  1. |null
  2. |сегодня
  3. |null
  4. |вчера
  5. |завтра

Первая сортировка по case when shippeddate is null then 1 else 0 end мы получим

orderID |shippeddate

|сегодня |вчера |завтра |null |null

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

|вчера |сегодня |завтра |null |null

надеюсь, что это полезно для вас

...