какая польза от AND с ORDER BY? - PullRequest
0 голосов
/ 10 апреля 2020

Что делает AND в запросе следующим образом

SELECT *
FROM table
WHERE SaleNo > 200,
ORDER BY EmployeeNo AND SaleNo;

Чем оно отличается от

SELECT *
FROM table
WHERE SaleNo > 200,
ORDER BY EmployeeNo, SaleNo;

Оба запроса фактически возвращают таблицу назад, но я не понимаю смысл 1-го запроса. ORDER BY обычно используется вместе с трубами и запятыми для дополнительной фильтрации. ТИА

1 Ответ

2 голосов
/ 10 апреля 2020
ORDER BY EmployeeNo AND SaleNo;

Вышеприведенное становится следующим:

ORDER BY (EmployeeNo AND SaleNo)

И затем становится:

ORDER BY (true/false AND true/false)

И затем

ORDER BY (true/false)

Таким образом, выражение преобразуется в выражение true / false.

Если 2 столбца являются числовыми типами, то 0 значений = false, а любое NON нулевое значение = true

, поэтому у вас есть

  ORDER BY ( (EmployeeNo <> 0) AND (SaleNo <> 0) )

Итак, если оба значения EmplyeeNo и SaleNo имеют значение?

Вы получаете это

  ORDER BY ( (true) AND (True))

  ORDER BY True

Значение равно -1.

Что это означает, что если оба значения имеют число (не 0), затем они появятся первыми в списке, и последуют все остальные, если одно из двух чисел равно 0 или оба равны 0.

Итак, для упорядочения по столбцу и затем, используя анохтер, вы используете

col1, col2  - as you have.

, если вы go

col1 AND col2

Тогда это логическое (true / false) выражение, а не порядок на один столбец , а затем перейти к следующему.

...