Получение второго вхождения из функции charindex в sql server - PullRequest
1 голос
/ 10 апреля 2019

Мне нужно получить второе вхождение пробела для текста ниже.Это должен быть пробел после 56, но я получаю 15-ю позицию перед 56 в качестве первой.

select charindex(' ', 'Posted/edited: 56 days ago', 2)

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

Вы уже получаете позицию второго пробела ('') в своем запросе => 15. Для пояснения, например, вы можете использовать его для извлечения контента с этого момента, используя следующую команду:

select substring('Posted/edited: 56 days ago', 
           charindex(' ', 'Posted/edited: 56 days ago', 2) + 1, 
           len('Posted/edited: 56 days ago'))
1 голос
/ 10 апреля 2019

Вам нужно установить START_LOCATION для CHARINDEX.Это означает, после чего должен быть найден символ charindex.В нашем примере нам нужно найти после 56.Поэтому код должен выглядеть так:

select CHARINDEX(' ', 'Posted/edited: 56 days ago', 
    CHARINDEX('56', 'Posted/edited: 56 days ago', 0));

ВЫХОД:

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