Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 07:43:19 pm

Автор Тема: Заменить 8 на 7 (Qlikview, QlikSense)  (Прочитано 189 раз)

Оффлайн HalLex

  • Новичок
  • *
  • Сообщений: 11
  • Страна: ru
  • Рейтинг: +2/-0
    • Просмотр профиля
Заменить 8 на 7 (Qlikview, QlikSense)
« : Ноябрь 15, 2017, 09:55:33 pm »
Здравствуйте!

Есть строки с номерами телефонов.
89160000000
79260000000
289180000000
1020
84957777777
и тп
Номера могут начинаться с любой цифры.
Задача, проверить первую цифру в номере и если она 8, заменить на 7.
По началу думал задача тривиальна, написал конструкцию:

if (Left(dst, 1)=8, (Replace (dst, Left(dst,1), 7)), dst ) as "Dialed Number",

Но внимательно почитав справку, понял, что такой подход заменит мне все восьмерки в номере, если выполняется условие, так как Replace заменяет все вхождения.
Подскажите, какая тут может быть логика и какими функциями можно решить задачу?
Спасибо.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Заменить 8 на 7
« Ответ #1 : Ноябрь 16, 2017, 07:02:54 am »
Привет.
Логика простая:
если слева 8, то строку обрезать, т.е. удалить первый символ и затем просто :
'7'&[укороченный на первый символ номер].
Примерно так:
if(Left(dst,1)='8'
    ,'7'&right(dst,len(dst)-1)
    ,dst)

Оффлайн HalLex

  • Новичок
  • *
  • Сообщений: 11
  • Страна: ru
  • Рейтинг: +2/-0
    • Просмотр профиля
Re: Заменить 8 на 7
« Ответ #2 : Ноябрь 16, 2017, 10:34:50 am »
Гениально и просто)
Спасибо!

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

Re: Заменить 8 на 7
« Ответ #2 : Ноябрь 16, 2017, 10:34:50 am »