Использование Charindex для получения данных слева от персонажа - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть поле с названием субъектов, и данные выглядят так:

ALJ Diane Davis - WCF

Я хочу, чтобы мой конечный результат был:

ALJ Diane Davis

Я пытаюсь получить все данныеслева от "-" я использую Advantage SQL, который я тоже новичок.

В приведенном ниже примере с использованием функции RIGHT все правильно, что работает, если бы я этого хотел, но я не всегда знаю точное количество символов для того, как я хочу, чтобы мои данные заканчивалиськак.

Заранее спасибо

left(appts.subject,charindex('-',appts.subject)

left(appts.subject,char('-',appts.subject)-1)

right(rtrim(appts.subject),6)

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Это должно дать вам результат.Найдите это функция работает в Adavantage-Sql.Вы можете использовать эту ссылку

Функция-LOCATE (str1, str2 [, start])

Возврат целочисленного местоположения (на основе 1) str1 в str2, с необязательной начальной начальной точкой.Если str1 не найден в str2, возвращается 0.

SELECT SUBSTRING('ALJ Diane Davis - WCF', 1, locate('-', 'ALJ Diane Davis - WCF') - 1)
0 голосов
/ 11 февраля 2019

Разве это не работает?

left(appts.subject, charindex('-', appts.subject) - 1)

Если это не удастся из-за того, что не у всех субъектов есть -, тогда:

left(appts.subject, charindex('-', appts.subject + '-') - 1)

Вышеописанное работает в Sybase.В Advantage SQL, я думаю, вам нужно location:

left(appts.subject, locate('-', appts.subject) - 1)
...