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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: PadijVD от 05 апреля 2015, 10:32:19

Название: определенный текст из строки в Qlikivew / Qlik Sense
Отправлено: PadijVD от 05 апреля 2015, 10:32:19
Добрый день!
Подскажите как можно в qlikview взять определенный текст из строки?
Нужно из адресов типа " Российская Федерация, 630007, Новосибирская обл, Новосибирск г, Колыванская, 104, - " взять только область в данном случае это "Новосибирская обл"
Название: Re: определенный текст из строки
Отправлено: admin от 05 апреля 2015, 12:37:27
День добрый.
Как и в любом другом языке программирования в  Qlikview & Sense присутствует целый набор функций для работы с текстовыми значениями (http://help.qlik.com/sense/ru-RU/online/#../Subsystems/Hub/Content/Scripting/StringFunctions/StringFunctions.htm%3FTocPath%3D%25D0%25A0%25D0%25B0%25D0%25B1%25D0%25BE%25D1%2582%25D0%25B0%2520%25D1%2581%2520Qlik%2520Sense%7C%25D0%25A1%25D0%25B8%25D0%25BD%25D1%2582%25D0%25B0%25D0%25BA%25D1%2581%25D0%25B8%25D1%2581%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25B0%2520%25D0%25B8%2520%25D1%2584%25D1%2583%25D0%25BD%25D0%25BA%25D1%2586%25D0%25B8%25D0%25B8%2520%25D0%25B4%25D0%25B8%25D0%25B0%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D1%258B%7C%25D0%25A4%25D1%2583%25D0%25BD%25D0%25BA%25D1%2586%25D0%25B8%25D0%25B8%2520%25D0%25B2%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25B0%25D1%2585%2520%25D0%25B8%2520%25D0%25B2%25D1%258B%25D1%2580%25D0%25B0%25D0%25B6%25D0%25B5%25D0%25BD%25D0%25B8%25D1%258F%25D1%2585%2520%25D0%25B4%25D0%25B8%25D0%25B0%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D1%258B%7C%25D0%25A1%25D1%2582%25D1%2580%25D0%25BE%25D0%25BA%25D0%25BE%25D0%25B2%25D1%258B%25D0%25B5%2520%25D1%2584%25D1%2583%25D0%25BD%25D0%25BA%25D1%2586%25D0%25B8%25D0%25B8%7C_____0).

Во вложении приведен вариант решения задачи (формула в нижней строке).
Описания функций можно найти по ссылке выше.
Если же адреса в этом поле имеют разные форматы, т.е. не последовательность "Страна, Индекс, Область, .." а например - "Индекс, область,..", то придется проанализировать все варианты и прописывать условия на определение формата в котором записан адрес и соответствующее выражения для каждого случая.
В данном варианте мы:
вырезаем функций MID() из строки Adr,
начиная с позиции после второй запятой Index(Adr,',',2)+1,
подстроку между 2 и 3 запятыми Index(Adr,',',3)-Index(Adr,',',2)-1,
и результат дополнительно очищаем от крайних пробелов функцией  TRIM()

trim(
  mid(Adr,
         Index(Adr,',',2)+1,
         Index(Adr,',',3)-Index(Adr,',',2)-1
        ))

Название: Re: определенный текст из строки
Отправлено: PadijVD от 05 апреля 2015, 12:50:44
Спасибо, помогли!!!!
Название: Re: определенный текст из строки
Отправлено: admin от 06 апреля 2015, 03:11:07
Да не за что  :), приведенное решение можно сказать - стандартно для работы с текстовыми строками во многих языках.
А вот в Qlikview и Sense для работы с такими данными есть еще функция Subfield().

trim(
SubField(Adr,',',3)
)

дает тот же результат.