Улей - найти 2 символа в любом месте строки / строки - RLIKE - PullRequest
1 голос
/ 30 января 2020

Как мне получить данные ТОЛЬКО «_WA» данных, назначенных «USA_RBB_WA_BU»? Однако в столбце, на который я смотрю, есть строки, содержащие _WA и _SA (USA_CA_SAWANT)

, которые я использовал,

                        select....
                         'USA_RBB_WA_BU' AS State ,
                         District 
                         from TABLE where district like '%_WA%'


                        select   ...
                         'USA_RBB_NSW_BU' AS State ,
                         District 
                         from TABLE where district like '%_SA%'

, однако я получил таблицу вывода данных ниже

**state                  district**
USA_RBB_NSW_BU          USA_CA_SAWANT
USA_RBB_WA_BU           USA_CA_SAWANT
USA_RBB_NSW_BU          USA_CA_SAWANT
USA_RBB_WA_BU           USA_CA_SAWANT

Я пытался

                        select....
                         'USA_RBB_WA_BU' AS State ,
                         District 
                         from TABLE where district like '_WA%'

                         output was  was 0 results in hive

Ответы [ 2 ]

1 голос
/ 30 января 2020

where district rlike '_WA' будет работать нормально (вернет TRUE, если строка содержит _WA)

Если вы хотите, чтобы строка содержала что-то до и после _WA, добавьте .+ (любой символ один или несколько раз ):

where district rlike '.+_WA.+'
0 голосов
/ 30 января 2020

Полагаю, вы ищете здесь _. Попробуйте ниже -

SELECT <FIELD_LIST>
       'USA_RBB_WA_BU' AS State ,
       District 
FROM TABLE
WHERE district RLIKE '.*_WA%'
...