MS SQL 2016 - столбец select equals by nvarchar не возвращает результатов, если в значении присутствует дефис. Нет полнотекстового индекса - PullRequest
0 голосов
/ 07 октября 2019

Я столкнулся с действительно странной проблемой, и до сих пор не смог найти ответ по SO.

Чтобы упростить дело, у меня есть таблица, в которой есть столбец nvarchar (500). В этой таблице у меня есть строка со значением «VOP 05 - ПЕРЕКЛЮЧЕНИЕ ОСНОВНОЙ СИСТЕМЫ - PS M1 К ВЫСОКИМ ТОЧКАМ ОПЕРАЦИОННЫХ БАКОВ» внутри его столбца Description. Я делаю самый простой выбор, чтобы получить эту строку:

SELECT * FROM 
[dbo].[Project_Change_Management] 
where 
[description]  = 'VOP 05 - RE-ROUTING OF MAINLINE - PS M1 TO HIGH POINT OPERATING TANKS' 

И ничего не получаю взамен. Немного поиграв с ним, я обнаружил, что я изменяю select на это состояние, оно возвращает правильную строку (да, оба дефиса должны были быть заменены на%, иначе это не работает):

SELECT * FROM 
[dbo].[Project_Change_Management] 
where 
[description]  like 'VOP 05 % RE-ROUTING OF MAINLINE % PS M1 TO HIGH POINT OPERATING TANKS'

MyТаблица не имеет полнотекстового индекса. На самом деле, у него вообще нет никаких идей, ключей и ничего, что может помешать ему. Кто-нибудь знает причину этого супер-странного поведения?

...