SQL charindex возвращает 0

Я запутался в использовании оператора charindex в SQL-сервере. Когда я объединяю автомобильное поле с запятыми, я получаю желаемый результат, но когда я снова проверяю индекс 12 в результате, я получаю 0 . Полевая машина INT и я также проверил 12 без единой кавычки.

select concat(',',car,',') as car from drivers where id=38

выход: ,12,

select CHARINDEX(concat(',',car,','),'12') as carindex from drivers where id=38

выход: 0

2 ответа

Решение

Вы должны поместить выражение, чтобы найти в первую очередь:

select CHARINDEX('12', CONCAT(',', @car,','), 0)

Как говорится в MSDN:

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] ) 

Последний параметр start_location, у вас может не быть длины символов.

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )  

Ссылка: https://docs.microsoft.com/en-us/sql/t-sql/functions/charindex-transact-sql?view=sql-server-2017

Другие вопросы по тегам