Символ _ для like является символом шаблоном.
https://docs.microsoft.com/ru-ru/sql...l-server-ver15
Странно, что в where система экранирует значение _displayValue, а не в значении для like, ведь escape применяется к строке которая находится после like.
Понятно почему в одном случае работает, а в другом нет
шаблон 48_% - означает 48(любой символ)(любые символы) - для 48\_0000 в данном случае _ замещается на \ ну и % отрабатывает все нули.
шаблон 58_030304% - 58(любой символ)030304% - а вот для значения 58\_0303040302 получаем, что _сравнивается уже с 0 и соответственно отваливается.
Можно попробовать вот такие шаблоны :
58\\\_030304%
48\\\_%
Без использования экранирования (когда в _displayValue нет бэкслэша), т.е. 48_0000 и 58_03030402 можно было бы использовать вот такие шаблоны
48[_]%
58[_]030304%