SQL charindex возвращает 0 - PullRequest
       10

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

0 голосов
/ 09 января 2019

Я запутался в использовании оператора charindex на сервере SQL. Когда я объединяю поле car с запятыми, я получаю желаемый результат, но когда я снова проверяю индекс 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 ]

0 голосов
/ 09 января 2019

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

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

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

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] ) 
0 голосов
/ 09 января 2019

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

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )  

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

...