Я думаю, вы должны обрезать столбец;

я есть таблица SQL Server, содержащая столбец nvarchar (max). Я выполнил запрос, чтобы выбрать каждую строку, где этот столбец содержит строку «удалить». Среди результатов у меня есть несколько строк, где этот столбец заполнен пустой строкой, и я не понимаю, почему эти значения были возвращены.

Я попытался исследовать дальше, по одному из возвращаемых значений пустой строки. Я обнаружил, что значение пустой строки будет соответствовать определенным условиям LIKE, но не другим. Например, он будет соответствовать «% remove%» и «% x%», но не будет соответствовать «% q%».

В таблице результатов в SQL Server Management Studio поле nvarchar отображается как пустое поле (оно не равно нулю). Однако, если я применяю функцию len () к этому полю, она возвращает значение 649. При экспорте таблицы результатов из SQL Server Management Studio в Excel поле nvarchar (max) будет пустым.

Предполагая, что в поле должно быть несколько символов пробела, я попытался выбрать поле после конкатенации «x» к любому концу возвращаемого значения. В результатах начальный «x» появляется в начале строки, но «x», соединенный в конец, не отображается.

Я полностью сбит с толку относительно того, что происходит. Я могу предоставить больше информации по запросу.

select itemid, content
from objects
where itemid = 100 and content like '%remove%'

----------------


itemid  |  content
100     |  
select itemid, 'x' + content + 'x' as 'content'
from objects
where itemid = 100 and content like '%remove%'

----------------


itemid  |  content
100     |  x

РЕДАКТИРОВАТЬ:

Обрезка поля не меняет количество символов. Тем не менее, когда я использую подстроку для выбора последнего символа в каскадном выводе, возвращаемым символом является 'x', что говорит о том, что он просто не виден в выводе GUI из-за длины строки. Я до сих пор не вижу этот символ «x» при экспорте контента в Excel. Я думаю, что возможно есть неподдерживаемые символы в переменной nvarchar.

select itemid, 'x' + ltrim(rtrim(content)) + 'x' as 'content'
from objects
where itemid = 100 and content like '%remove%'

----------------


itemid  |  content
100     |  x