Типы данных varchar и varchar несовместимы в операторе по модулю SQL Server - PullRequest
0 голосов
/ 28 августа 2018

Я получаю эту ошибку:

Типы данных varchar и varchar несовместимы в операторе по модулю.

при запуске этого кода

' Number LIKE '%' + @search + '%' ';

Число является целым числом, и этот фрагмент кода заключен в ''; из-за динамического оператора поворота. Любые идеи, как я могу запустить это? спасибо

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Вы уверены, что вам нужны эти внешние кавычки, если это не просто

Number LIKE '%' + @search + '%'

В противном случае вам нужно будет избегать внутренних кавычек. Попробуйте это:

'Number LIKE ''%'' + @search + ''%'''
0 голосов
/ 28 августа 2018

Поскольку % является оператором по модулю в SQl Server, и это интерпретируется как таковое, потому что для вставки quto в строку вам нужно удвоить его , как предлагают другие ответы.

Другое решение будет:

'CHARINDEX(' + @search + ', Number) > 0'

Я всегда склонен использовать этот оператор над LIKE с %someString%. Оба определяют, есть ли строка в другом.

0 голосов
/ 28 августа 2018

Предположительно, у вас есть что-то вроде этого:

SELECT ' Number LIKE '%' + @search + '%' ';

Если это так, у вас есть одинарные кавычки внутри строки. Таким образом, «строка» интерпретируется как:

SELECT (' Number LIKE ') % (' + @search + ') % (' ');

% является оператором по модулю. , , и, следовательно, ваша ошибка.

Чтобы поместить одинарные кавычки в строку, вам нужно их удвоить. Примерно так:

SELECT ' Number LIKE ''%'' + @search + ''%'' ';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...