Показать сообщение отдельно
Старый 16.09.2021, 08:02   #2  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
362 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Символ _ для 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%
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Perc (2).