Partage de technologie

fonction inverse dans la ruche

2024-07-12

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

Préface

La fonction inverse est une fonction de traitement de chaînes couramment utilisée et disponible dans de nombreux langages de programmation. Lors d'un développement récent, j'ai rencontré un besoin de résolution inverse. J'ai découvert que je ne l'avais pas encore résumé, alors je l'ai rattrapé.

Introduction aux fonctions de base

SELECT reverse(string_column) FROM table_name;
  • 1

Exemple:

SELECT reverse('hello world');
  • 1

Le résultat est:
dlrow olleh

Combat réel

Il existe actuellement trois champs : ID d'utilisateur, nom d'utilisateur et combinaison d'ID d'intérêt. L'exigence actuelle est d'obtenir le dernier de chaque combinaison d'utilisateur et d'ID d'intérêt ;

Mise en œuvre:

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

Le résultat est le suivant :

ID de l'utilisateurnom d'utilisateurfavside
1458963fleuron8
1258963Xiao Ming10
3245895Xiaocui