Соответствует ли оператор SQL Server LIKE с пустой строкой (% ''%) всем ненулевым значениям в столбце VARCHAR? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть следующий SQL, который выполняется как часть хранимой процедуры (значение, предоставленное оператору LIKE, является переменной, установленной в пустую строку):

SELECT productCode FROM tblProductCodes WHERE productCode LIKE %''%;
--productCode is a VARCHAR(255) column

Можно ли предположить, что приведенный выше запрос всегда будет возвращать все не-NULL productCode записи из таблицы?

Я использую SQL Server 2008

1 Ответ

0 голосов
/ 29 октября 2018

Это синтаксическая ошибка:

WHERE productCode LIKE %''%

Предположительно, вы имеете в виду:

WHERE productCode LIKE '%%'

Соответствует всем не NULL значениям productCode. % - это шаблон, который соответствует 0 или более символам.

Если вы хотите гарантировать код с определенным количеством символов, вы можете использовать _. Таким образом, это гарантирует, что productCode имеет как минимум два символа:

WHERE productCode LIKE '__%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...