Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 20, 2018, 04:21:36 pm

Автор Тема: Получить часть строки  (Прочитано 519 раз)

Оффлайн Tatsiana

  • Новичок
  • *
  • Сообщений: 38
  • Страна: by
  • Рейтинг: +7/-0
    • Просмотр профиля
Получить часть строки
« : Май 30, 2018, 10:25:16 am »
Всем привет!
Дана строка:
st1/201804190800
Подскажите, пожалуйста, как получить часть строки до наклонной черты, если количество знаков в ней не постояное?
Т.е. может быть st12/201804190800 или st123/201804190800

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1219
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Re: Получить часть строки
« Ответ #1 : Май 30, 2018, 10:47:38 am »
Привет.
Даю подсказку, функция Index() возвращает положение символа, и , следовательно, определяет границу обрезки для команды left() или right(), в зависимости от задачи.

Оффлайн Tatsiana

  • Новичок
  • *
  • Сообщений: 38
  • Страна: by
  • Рейтинг: +7/-0
    • Просмотр профиля
Re: Получить часть строки
« Ответ #2 : Май 30, 2018, 11:25:31 am »
Спасибо, но с Index() и Left() ничего не получается.
Вот это работает:
Left(yourFeld, Len(yourFeld)-13)

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

Re: Получить часть строки
« Ответ #2 : Май 30, 2018, 11:25:31 am »

Оффлайн Rosherh11

  • Новичок
  • *
  • Сообщений: 9
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: Получить часть строки
« Ответ #3 : Май 30, 2018, 11:35:29 am »
С помощью SubField() можно получить значение хоть до, хоть после символа.

Оффлайн Tatsiana

  • Новичок
  • *
  • Сообщений: 38
  • Страна: by
  • Рейтинг: +7/-0
    • Просмотр профиля
Re: Получить часть строки
« Ответ #4 : Май 30, 2018, 02:05:17 pm »
Да, спасибо, работает:
SubField(yourFeld, '/' ,1)

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1219
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Re: Получить часть строки
« Ответ #5 : Май 30, 2018, 03:15:09 pm »
Спасибо, но с Index() и Left() ничего не получается.
Быть не может. Проверьте:
left('st12/201804190800',index('st12/201804190800','/')-1)
или
left(yourFeld,index(yourFeld,'/')-1)
В справке аналогичный пример:
Цитировать
Left( Date, Index( Date,'-') -1 ) where Date =  1997-07-14   Возвращает 1997

Оффлайн Tatsiana

  • Новичок
  • *
  • Сообщений: 38
  • Страна: by
  • Рейтинг: +7/-0
    • Просмотр профиля
Re: Получить часть строки
« Ответ #6 : Май 30, 2018, 04:44:02 pm »
Да, действительно работает. Спасибо!
Теперь у меня есть три варианта ;)

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

Re: Получить часть строки
« Ответ #6 : Май 30, 2018, 04:44:02 pm »

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 85
  • Страна: ru
  • Рейтинг: +11/-0
    • Просмотр профиля
Re: Получить часть строки
« Ответ #7 : Июнь 07, 2018, 01:34:56 pm »
Предпочтение лучше отдавать SubField(), т.к. для этого и создана.

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

Re: Получить часть строки
« Ответ #7 : Июнь 07, 2018, 01:34:56 pm »