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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: HalLex от 15 ноября 2017, 09:55:33

Название: Заменить 8 на 7 (Qlikview, QlikSense)
Отправлено: HalLex от 15 ноября 2017, 09:55:33
Здравствуйте!

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

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

Но внимательно почитав справку, понял, что такой подход заменит мне все восьмерки в номере, если выполняется условие, так как Replace заменяет все вхождения.
Подскажите, какая тут может быть логика и какими функциями можно решить задачу?
Спасибо.
Название: Re: Заменить 8 на 7
Отправлено: admin от 16 ноября 2017, 07:02:54
Привет.
Логика простая:
если слева 8, то строку обрезать, т.е. удалить первый символ и затем просто :
'7'&[укороченный на первый символ номер].
Примерно так:

if(Left(dst,1)='8'
    ,'7'&right(dst,len(dst)-1)
    ,dst)
Название: Re: Заменить 8 на 7
Отправлено: HalLex от 16 ноября 2017, 10:34:50
Гениально и просто)
Спасибо!