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)
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