기술나눔

하이브의 역방향 기능

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

머리말

reverse 함수는 많은 프로그래밍 언어에서 사용할 수 있는 일반적으로 사용되는 문자열 처리 함수입니다. 최근 개발 중에 역으로 해결해야 할 필요성이 생겼는데, 아직 요약하지 못한 것을 발견하여 보충했습니다.

기본 기능 소개

SELECT reverse(string_column) FROM table_name;
  • 1

예:

SELECT reverse('hello world');
  • 1

결과는 다음과 같습니다.
드로 올레흐

실제 전투

현재 사용자 ID, 사용자 이름 및 관심 ID 조합의 세 가지 필드가 있습니다. 현재 요구 사항은 각 사용자 및 관심 ID 조합 중 마지막 항목을 가져오는 것입니다.

구현:

with temp_test as 
(
    select '1458963' as userid ,'小花'  as  user_name ,'[1,5,8]' as favsid
    union all 
    select '1258963' as userid ,'小明'  as  user_name ,'[3,7,9,10]' as favsid 
    union all  
    select '3245895' as userid ,'小翠'  as  user_name ,'[]' as favsid  
)


select 
userid
,user_name
,reverse(split(favsid,'\,')[0]) as favsid
from  
(select 
userid
,user_name
,regexp_replace(reverse(favsid),'\[|\]','') as favsid
from  temp_test
) tt 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

결과는 다음과 같습니다.

사용자 ID사용자 이름파브시드
1458963작은 꽃8
1258963샤오밍10
3245895샤오쿠이