извините, но ответ является четким и простой
https://github.com/Bumblebee-Project/bumblebee-ui/blob/master/README#L27
Это изменение поведения между SQL Server 2000 и SQL Server 2005
Это стандартное поведение ANSI SQL, которое было принято SQL Server, начиная с версии 2005.
ORDER BY НЕ работает с значения столбцов из исходных таблиц (предложение FROM), а технически он работает ТОЛЬКО со значениями столбца output в предложении SELECT (**). Поэтому, когда вы говорите «ShowOrder» в предложении ORDER BY, на самом деле он использует значение ShowOrder в списке вывода (которое оказывается pr.ShowOrder). Если вы хотите использовать оба ShowOrder, вы должны поместить их обоих в предложение SELECT с разными именами.
Причина, по которой он не лает при использовании псевдонимов таблиц исходных (что технически и должно), заключается в совместимости с SQL Server 2000, но это опасная совместимость. Независимо от того, какой псевдоним вы используете в ORDER BY, на самом деле он использует только тот, который отображается в списке вывода.
(** - и да, есть способы обойти это, но они в основном предназначены для совместимость с предыдущими версиями. Лучше просто использовать стандарт).
в основном для обеспечения некоторой совместимости с предыдущими версиями. Лучше просто использовать стандарт). здесь в основном для обеспечения некоторой совместимости с предыдущими версиями. Лучше просто использовать стандарт).