• Maybe a work around would be something like this:

    SELECT *,

    CASE WHEN val IS NULL THEN 0 ELSE 1 END,

    NTILE(4) OVER (PARTITION BY CASE WHEN val IS NULL THEN 0 ELSE 1 END ORDER BY val) As Q

    FROM #t;

    Only use the rank when CASE WHEN val IS NULL THEN 0 ELSE 1 END = 1