Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Tatsiana от 30 мая 2018, 10:25:16

Название: Получить часть строки
Отправлено: Tatsiana от 30 мая 2018, 10:25:16
Всем привет!
Дана строка:
st1/201804190800
Подскажите, пожалуйста, как получить часть строки до наклонной черты, если количество знаков в ней не постояное?
Т.е. может быть st12/201804190800 или st123/201804190800
Название: Re: Получить часть строки
Отправлено: admin от 30 мая 2018, 10:47:38
Привет.
Даю подсказку, функция Index() (https://help.qlik.com/ru-RU/sense/September2017/Subsystems/Hub/Content/Scripting/StringFunctions/Index.htm) возвращает положение символа, и , следовательно, определяет границу обрезки для команды left() (https://help.qlik.com/ru-RU/sense/September2017/Subsystems/Hub/Content/Scripting/StringFunctions/Left.htm) или right(), в зависимости от задачи.
Название: Re: Получить часть строки
Отправлено: Tatsiana от 30 мая 2018, 11:25:31
Спасибо, но с Index() и Left() ничего не получается.
Вот это работает:
Left(yourFeld, Len(yourFeld)-13)
Название: Re: Получить часть строки
Отправлено: Rosherh11 от 30 мая 2018, 11:35:29
С помощью SubField() можно получить значение хоть до, хоть после символа.
Название: Re: Получить часть строки
Отправлено: Tatsiana от 30 мая 2018, 02:05:17
Да, спасибо, работает:
SubField(yourFeld, '/' ,1)
Название: Re: Получить часть строки
Отправлено: admin от 30 мая 2018, 03:15:09
Цитата: Tatsiana от 30 мая  2018, 11:25:31  
Спасибо, но с Index() и Left() ничего не получается.
Быть не может. Проверьте:
left('st12/201804190800',index('st12/201804190800','/')-1)
или
left(yourFeld,index(yourFeld,'/')-1)

В справке  (https://help.qlik.com/ru-RU/sense/September2017/Subsystems/Hub/Content/Scripting/StringFunctions/Index.htm)аналогичный пример:
ЦитироватьLeft( Date, Index( Date,'-') -1 ) where Date =  1997-07-14   Возвращает 1997
Название: Re: Получить часть строки
Отправлено: Tatsiana от 30 мая 2018, 04:44:02
Да, действительно работает. Спасибо!
Теперь у меня есть три варианта ;)
Название: Re: Получить часть строки
Отправлено: LoryMax от 07 июня 2018, 01:34:56
Предпочтение лучше отдавать SubField(), т.к. для этого и создана.