Как ltrim (s, t), rtrim (s, t) в Netezza SQL преобразуют в Hive SQL? - PullRequest
1 голос
/ 30 октября 2019

Может кто-нибудь сказать мне, каковы эквивалентные функции Netezza SQL для ltrim (s, t) и rtrim (s, t) в Hive SQL? Я действительно ценю это!

Я знаю в Netezza SQL,

Выберите ltrim ('abcd', 'a');

'bcd'

Select rtrim ('abcd', 'd');

'abc'

А как же

Select ltrim('aaaabaabcd', 'a');

Select rtrim ('abcdbddddd', 'd');?

И каковы эквивалентные функции для ltrim () и rtrim () вУлей SQL?

1 Ответ

0 голосов
/ 30 октября 2019

В Hive это можно сделать с помощью regexp_replace.

Обрезка влево:

select regexp_replace('aaaabaabcd','^a*','');
OK
baabcd

Обрезка вправо:

select regexp_replace('aaaabaabcda','a*$','');
OK
aaaabaabcd

Обрезка влево и вправо:

select regexp_replace('aaaabaabcda','^(a*)|(a*)$','');
OK
baabcd

Обрезка комбинации символов в конце строки:

select regexp_replace('aaaabaabcdabcda','(bcda)*$','');
OK
aaaabaa

Regexp является мощным средством, и вы можете выполнять гораздо более сложные преобразования, также используя функцию regexp_extract. См. руководство по функциям .

...