Нет синтаксиса NULLS LAST
для T-SQL.
Если вы хотите упорядочить значения NULL
в последний раз, то обычно используйте выражение CASE
или IIF
:
--CASE Expression
CASE WHEN {expression} IS NULL THEN 1 ELSE 0 END
--IIF funciton (which is actually a shorthand CASE expression)
IIF({Expression} IS NULL, 1, 0)
Если у вас сложное выражение, для которого вы хотите упорядочить значения NULL
в последнюю очередь, а затем выражение, и это выражение не появится в SELECT
(поэтому на него нельзя ссылатьсяпо псевдониму), затем вы можете переместить выражение в FROM
, чтобы избежать многократного ввода выражения:
FROM ...
JOIN ...
LEFT JOIN ...
...
CROSS APPLY (VALUES({Expression}))V(Alias)
WHERE ...
ORDER BY IIF(V.Alias IS NULL,1,0),
V.Alias