Спасибо за ответы. Я попробовал некоторые вещи и нашел следующие решения:
Решение 1 (заменить подвыбор внутренним соединением):
SELECT tablex.Abnumber,
CASE WHEN tablex.Abdate is not null
AND isnull(tablex.Abnumber,0) > 1
AND tablex.Abdate < tablex2.Abdate
THEN 'bla bla'
ELSE '' END
FROM t_tablex AS tablex
INNER JOIN t_tablex as tablex2
ON tablex.Annumber = tablex2.Annumber
AND tablex.Abnumber = tablex2.Abnumber + 1
WHERE tablex.Annumber = ISNULL( @Annumber, tablex.Annumber)
AND tablex.Abnumber = ISNULL( @Abnumber, tablex.Abnumber)
Решение 2 (с LAG ()):
SELECT base.*
FROM (
SELECT tablex.Abnumber,
CASE WHEN tablex.Abdate is not null
AND tablex.Abnumber > 1
AND tablex.Abdate < LAG( tablex.Abdate, 1 ) OVER ( PARTITION BY tablex.Annumber ORDER BY tablex.Abnumber)
THEN 'bla bla'
ELSE '' END AS ERG
FROM t_tablex AS tablex
WHERE tablex.Annumber = ISNULL( @Annumber, tablex.Annumber )
AND tablex.Abnumber BETWEEN ISNULL( @Abnumber , tablex.Abnumber) - 1
AND ISNULL( @Abnumber, tablex.Abnumber )
) base
WHERE
base.Abnumber = ISNULL( @Abnumber, base.Abnumber )