IVF

Chasing Dreams

Funcții string Impala

  • toate funcțiile care acceptă argumentele STRING acceptă și tipurile VARCHAR și CHAR introduse în Impala 2.0.
  • ori de câte ori VARCHAR sau CHARvalorile sunt transmise la o funcție care returnează o valoare șir, tipul de retur este normalizat la STRING. De exemplu, un apel la concat() cu un amestec de STRING, VARCHAR și CHAR argumente produce un STRING rezultat.

funcția de referință:

Impala acceptă următoarele funcții șir:

  • ASCII
  • BASE64DECODE
  • BASE64ENCODE
  • BTRIM
  • CHAR_LENGTH
  • CHR
  • CONCAT
  • CONCAT_WS
  • FIND_IN_SET
  • GROUP_CONCAT
  • INITCAP
  • INSTR
  • JARO_DISTANCE, JARO_DIST
  • JARO_SIMILARITY, JARO_SIMILARITY
  • JARO_WINKER_DISTANCE, JW_DST
  • JARO_WINKER_SIMILARITATE, JW_SIM
  • STÂNGA
  • LUNGIME
  • LEVENSHTEIN, LE_DST
  • LOCALIZAȚI
  • INFERIOR, LCASE
  • LPAD
  • LTRI
  • PARSE_URL
  • REGEXP_ESCAPE
  • REGEXP_EXTRACT
  • REGEXP_LIKE
  • REGEXP_REPLACE
  • repetați
  • înlocuiți
  • REVERSE
  • dreapta
  • RPAD
  • RTRIM
  • spațiu
  • SPLIT_PART
  • STRLEFT
  • STRRIGHT
  • SUBSTR, subșir
  • traduce
  • trim
  • superior, UCASE

ASCII(string str) scop: returnează codul numeric ASCII al primului caracter al argumentului.

Tip retur: INT

BASE64DECODE (STRING str) scop:

Tip retur: STRING

note de Utilizare:

funcțiile BASE64ENCODE() și BASE64DECODE() sunt de obicei utilizate în combinație, pentru a stoca într-un tabel Impala șir de date care este problematică pentru a stoca sau transmite. De exemplu, puteți utiliza aceste funcții pentru a stoca date șir care utilizează o altă codificare decât UTF-8 sau pentru a transforma valorile în contexte care necesită valori ASCII, cum ar fi pentru coloanele cheie de partiție. Rețineți că valorile codificate base64 produc rezultate diferite pentru funcțiile șirului, cum ar fi LENGTH(), MAX() și MIN() decât atunci când aceste funcții sunt apelate cu valorile șirului necodificate.

toate valorile returnate produse de BASE64ENCODE() sunt un multiplu de 4 octeți în lungime. Toate valorile argumentului furnizate BASE64DECODE() trebuie să fie, de asemenea, un multiplu de 4 octeți în lungime. Dacă o valoare codificată base64 ar avea altfel o lungime diferită, poate fi căptușită cu caractere = pentru a atinge o lungime care este un multiplu de 4 octeți.

Dacă șirul de argumente la BASE64DECODE()nu reprezintă o valoare codificată base64 validă, sub rezerva constrângerilor implementării Impala, cum ar fi setul de caractere permis, funcția returnează NULL.

Exemple:

BASE64ENCODE (STRING str) scop:

Tip retur: STRING

note de Utilizare:

funcțiile BASE64ENCODE() și BASE64DECODE() sunt de obicei utilizate în combinație, pentru a stoca într-un tabel Impala șir de date care este problematică pentru a stoca sau transmite. De exemplu, puteți utiliza aceste funcții pentru a stoca date șir care utilizează o altă codificare decât UTF-8 sau pentru a transforma valorile în contexte care necesită valori ASCII, cum ar fi pentru coloanele cheie de partiție. Rețineți că valorile codificate base64 produc rezultate diferite pentru funcțiile șirului, cum ar fi LENGTH(), MAX() și MIN() decât atunci când aceste funcții sunt apelate cu valorile șirului necodificate.

toate valorile returnate produse de BASE64ENCODE() sunt un multiplu de 4 octeți în lungime. Toate valorile argumentului furnizate BASE64DECODE() trebuie să fie, de asemenea, un multiplu de 4 octeți în lungime. Dacă o valoare codificată base64 ar avea altfel o lungime diferită, poate fi căptușită cu caractere = pentru a atinge o lungime care este un multiplu de 4 octeți.

Exemple:

BTRIM(STRING a), BTRIM(STRING a, STRING chars_to_trim) scop: elimină toate instanțele unuia sau mai multor caractere de la începutul și sfârșitul unei valoriSTRING. În mod implicit, elimină numai spațiile. Dacă este specificat un al doilea argument opțional non-NULL, funcția elimină toate aparițiile caracterelor din acel al doilea argument de la începutul și sfârșitul șirului.

Tip retur: STRING

Exemple:

următoarele exemple arată comportamentul implicit btrim() și ce se schimbă atunci când specificați al doilea argument opțional. Toate exemplele paranteză valoarea de ieșire cu , astfel încât să puteți vedea orice spații de conducere sau la final în btrim() rezultat. În mod implicit, funcția elimină și numărul de spații de conducere și de sfârșit. Când este specificat al doilea argument, orice număr de apariții ale oricărui caracter din al doilea argument sunt eliminate de la începutul și sfârșitul șirului de intrare; în acest caz, spațiile nu sunt eliminate (cu excepția cazului în care fac parte din al doilea argument) și orice instanțe ale caracterelor nu sunt eliminate dacă nu vin chiar la începutul sau la sfârșitul șirului.

CHAR_LENGTH(STRING a), CHARACTER_LENGTH(STRING a) scop: returnează lungimea în caractere a șirului de argumente. Pseudonime pentru funcțialength().

Tip retur: INT

CHR(int character_code) scop: returnează un caracter specificat de o valoare punct de cod zecimal. Interpretarea și afișarea caracterului rezultat depinde de localizarea sistemului. Deoarece procesarea consecventă a valorilor șirului Impala este garantată numai pentru valorile din intervalul ASCII, utilizați această funcție numai pentru valorile corespunzătoare caracterelor ASCII. În special, valorile parametrilor mai mari de 255 returnează un șir gol.

Tip retur: STRING

note de utilizare: poate fi folosit ca invers al funcției ascii(), care convertește un caracter în codul său numeric ASCII.

Exemple:

SELECT chr(65);+---------+| chr(65) |+---------+| A |+---------+SELECT chr(97);+---------+| chr(97) |+---------+| a |+---------+

CONCAT(șirul a, șirul b…) Scop: returnează un singur șir reprezentând toate valorile argumentului Unite.

dacă orice argument este NULL, funcția returnează NULL.

Tip retur: STRING

note de Utilizare: concat() și concat_ws() sunt potrivite pentru concatenarea valorilor mai multor coloane din același rând, în timp ce group_concat() unește valori din rânduri diferite.

CONCAT_WS (string sep, STRING a, STRING b…) Scop: returnează un singur șir reprezentând a doua și următoarele valori argument Unite împreună, delimitat de un separator specificat.

dacă orice argument este NULL, funcția returnează NULL.

Tip retur: STRING

note de Utilizare: concat() și concat_ws() sunt potrivite pentru concatenarea valorilor mai multor coloane din același rând, în timp ce group_concat() unește valori din rânduri diferite.

Find_in_set(STRING str, STRLIST STRING) scop: returnează poziția (începând de la 1) a primei apariții a unui șir specificat într-un șir separat prin virgulă. ReturneazăNULLdacă oricare argument esteNULL, 0 dacă șirul de căutare nu este găsit sau 0 dacă șirul de căutare conține o virgulă.

Tip retur: INT

GROUP_CONCAT(STRING s ) scop: Returnează un singur șir reprezentând valoarea argumentului concatenată împreună pentru fiecare rând al setului de rezultate. Dacă este specificat șirul separator opțional, separatorul este adăugat între fiecare pereche de valori concatenate.

Tip retur: STRING

note de Utilizare: concat() și concat_ws() sunt potrivite pentru concatenarea valorilor mai multor coloane din același rând, în timp ce group_concat() unește valori din rânduri diferite.

în mod implicit, returnează un singur șir care acoperă întregul set de rezultate. Pentru a include alte coloane sau valori în setul de rezultate sau pentru a produce mai multe șiruri concatenate pentru subseturi de rânduri, includeți o clauză GROUP BY în interogare.

strict vorbind, group_concat() este o funcție agregată, nu o funcție scalară ca celelalte din această listă. Pentru detalii și exemple suplimentare, consultați funcția GROUP_CONCAT.

INITCAP(STRING str) scop: returnează șirul de intrare cu prima literă a fiecărui cuvânt cu majuscule și toate celelalte litere cu litere mici.

Tip retur: STRING

exemplu:

INITCAP("i gOt mY ChiCkeNs in tHe yard.") returnează "I Got My Chickens In The Yard.".

INSTR(STRING str, string substr ]) scop: returnează poziția (începând de la 1) a primei apariții a unui subșir într-un șir mai lung.

Tip retur: INT

note de Utilizare:

dacă substr nu este prezent în str, funcția returnează 0.

al treilea și al patrulea argument opțional vă permit să găsiți instanțe ale substr, altele decât prima instanță, începând din stânga.

JARO_DISTANCE(STRING str1, STRING str2) JARO_DST (STRING str1, STRING str2) scop: returnează distanța Jaro între două șiruri de intrare. Distanța Jaro este o măsură de similitudine între două șiruri și este complementarulJARO_SIMILARITY(), adică (1 –JARO_SIMILARITY()).

Tip retur: DOUBLE

note de Utilizare:

dacă cele două șiruri de intrare sunt identice, funcția returnează 0.0.

dacă nu există nici un caracter de potrivire între șiruri de intrare, funcția returnează 1.0.

Dacă oricare șir de intrare este NULL, funcția returnează NULL.

dacă lungimea oricărui șir de intrare este mai mare de 255 de caractere, funcția returnează o eroare.

JARO_SIMILARITY(STRING str1, STRING str2) JARO_SIM (STRING str1, STRING str2) scop: returnează similitudinea Jaro a două șiruri. Cu cât este mai mare similitudinea Jaro pentru două șiruri, cu atât sunt mai asemănătoare șirurile.

Tip retur: DOUBLE

note de Utilizare:

dacă cele două șiruri de intrare sunt identice, funcția returnează 1.0.

dacă nu există nici un caracter de potrivire între șiruri de intrare, funcția returnează 0.0.

Dacă oricare șir de intrare este NULL, funcția returnează NULL.

dacă lungimea oricărui șir de intrare este mai mare de 255 de caractere, funcția returnează o eroare.

JARO_WINKLER_DISTANCE(STRING str1, STRING str2) JW_DST (STRING str1, STRING str2) scop: returnează distanța Jaro-Winkler a două șiruri de intrare. Este complementarulJARO_WINKLER_SIMILARITY(), adică 1 –JARO_WINKLER_SIMILARITY().

Tip retur: DOUBLE

note de Utilizare:

dacă cele două șiruri de intrare sunt identice, funcția returnează 0.0.

dacă nu există nici un caracter de potrivire între șiruri de intrare, funcția returnează 1.0.

funcția returnează o eroare în următoarele cazuri:

  • lungimea oricărui șir de intrare este mai mare de 255 de caractere.
  • scaling_factor < 0.0 sau scaling_factor > 0.25
  • boost_threshold < 0.0 sau boost_threshold > 1.0

Dacă oricare dintre șirurile de intrare este NULL, funcția returnează NULL.

factorul implicit de scalare este 0.1.

greutatea prefixului va fi aplicată numai dacă distanța Jaro depășește valoarea opțională boost_threshold. În mod implicit, valoarea boost_threshold este 0.7.

JARO_WINKLER_SIMILARITY(STRING str1, STRING str2) JARO_SIM (STRING str1, STRING str2) scop: returnează similitudinea Jaro-Winkler între două șiruri de intrare. Similitudinea Jaro-Winkler folosește o greutate a prefixului, specificată de factorul de scalare, care oferă ratinguri mai favorabile șirurilor care se potrivesc de la început pentru o lungime de prefix setată, până la maximum patru caractere.

utilizați funcțiile Jaro sau jaro-Winkler pentru a efectua potriviri neclare pe șiruri relativ scurte, de exemplu, pentru a curăța intrările de nume ale utilizatorilor împotriva înregistrărilor din Baza de date.

Tip retur: DOUBLE

note de Utilizare:

dacă cele două șiruri de intrare sunt identice, funcția returnează 1.0.

dacă nu există nici un caracter de potrivire între șiruri de intrare, funcția returnează 0.0.

funcția returnează o eroare în următoarele cazuri:

  • lungimea oricărui șir de intrare este mai mare de 255 de caractere.
  • scaling_factor < 0.0 sau scaling_factor > 0.25
  • boost_threshold < 0.0 sau boost_threshold > 1.0

Dacă oricare dintre șirurile de intrare este NULL, funcția returnează NULL.

factorul implicit de scalare este 0.1.

greutatea prefixului va fi aplicată numai dacă similitudinea Jaro depășește valoarea opțională boost_threshold. În mod implicit, valoarea boost_threshold este 0.7.

stânga (șir a, int num_chars) a se vedeaSTRLEFT()funcția. Lungime (șir a) Scop: returnează lungimea în caractere a șirului de argumente.

Tip retur: INT

LEVENSHTEIN(STRING str1, STRING str2), LE_DST(STRING str1, STRING str2) scop: returnează distanța Levenshtein între două șiruri de intrare. Distanța Levenshtein între două șiruri este numărul minim de modificări cu un singur caracter necesare pentru a transforma un șir în altul. Funcția indică cât de diferite sunt șirurile de intrare.

Tip retur: INT

note de Utilizare:

dacă șirurile de intrare sunt egale, funcția returnează 0.

Dacă oricare dintre intrări depășește 255 de caractere, funcția returnează o eroare.

Dacă oricare șir de intrare este NULL, funcția returnează NULL.

dacă lungimea unui șir de intrare este zero, funcția returnează lungimea celuilalt șir.

exemplu:

LEVENSHTEIN ('welcome', 'We come') returnează 2, mai întâi schimbați pentru a înlocui ‘w‘ la ‘ W‘, apoi pentru a înlocui ‘l ‘ la un caracter spațial.

LOCATE(string substr, STRING str) scop: returnează poziția (începând de la 1) a primei apariții a unui subșir într-un șir mai lung, opțional după o anumită poziție.

Return type: INT

LOWER(STRING a), LCASE(STRING a) scop: returnează șirul argument convertit la toate minuscule.

Tip retur: STRING

note de Utilizare:

în Impala 2.5 și versiuni ulterioare, puteți simplifica interogările care utilizează multe apeluri UPPER() și LOWER() pentru a face comparații insensibile la majuscule, utilizând în schimb operatorii ILIKE sau IREGEXP.

LPAD(STRING str, INT len, string pad) scop: returnează un șir de o lungime specificată, bazat pe primul șir argument. Dacă șirul specificat este prea scurt, acesta este căptușit în stânga cu o secvență repetată a caracterelor din șirul pad. Dacă șirul specificat este prea lung, acesta este trunchiat în dreapta.

Tip retur: STRING

Ltrim(STRING A ) scop: Returnează șirul argument cu toate aparițiile de caractere specificate de al doilea argument eliminat din partea stângă. Elimină spațiile dacă al doilea argument nu este specificat.

Tip retur: STRING

PARSE_URL(STRING urlString, STRING partToExtract ) scop: returnează porțiunea unei adrese URL corespunzătoare unei părți specificate. Argumentul parte poate fi'PROTOCOL','HOST','PATH','REF','AUTHORITY','FILE','USERINFO', sau'QUERY'. Majuscule este necesar pentru aceste valori literale. Când solicitați porțiuneaQUERYa adresei URL, puteți specifica opțional o cheie pentru a prelua doar valoarea asociată din perechile cheie-valoare din șirul de interogare.

Tip retur: STRING

note de Utilizare: această funcție este importantă pentru cazul tradițional de Utilizare Hadoop de interpretare a jurnalelor web. De exemplu, dacă datele de trafic web prezintă URL-uri brute care nu sunt împărțite în coloane de tabel separate, puteți număra vizitatorii unei anumite pagini extragând câmpul 'PATH' sau 'FILE' sau puteți analiza termenii de căutare extragând cheia corespunzătoare din câmpul 'QUERY'.

REGEXP_ESCAPE(STRING source) scop: funcțiaREGEXP_ESCAPEreturnează un șir scăpat pentru caracterul special din biblioteca RE2, astfel încât caracterele speciale să fie interpretate literal, mai degrabă decât ca caractere speciale. Următoarele caractere speciale sunt scăpate de funcție:

.\+*?$(){}=!<>|:-

Tip retur: string

în Impala 2.0 și versiunile ulterioare, sintaxa expresiei regulate Impala este conformă cu sintaxa expresiei regulate extinse POSIX utilizată de Biblioteca Google RE2. Pentru detalii, consultați documentația RE2. Are cele mai multe expresii familiare din expresiile regulate din Perl, Python și așa mai departe, inclusiv .*? pentru meciurile non-greedy.

în Impala 2.0 și versiunile ulterioare, o modificare a bibliotecii de expresii regulate de bază ar putea provoca modificări ale modului în care expresiile regulate sunt interpretate de această funcție. Testați orice interogări care utilizează expresii regulate și ajustați modelele de Expresie, dacă este necesar.

deoarece interpretul impala-shell folosește caracterul \ pentru a scăpa, utilizați \ pentru a reprezenta caracterul de evacuare expresie regulată în orice expresii regulate pe care le trimiteți prin impala-shell . Ați putea prefera să utilizați nume de clasă de caractere echivalente, cum ar fi ] în loc de \d care ar trebui să scape ca \d.

Exemple:

acest exemplu arată scăparea unuia dintre caracterele speciale din RE2.

+------------------------------------------------------+| regexp_escape('Hello.world') |+------------------------------------------------------+| Hello\.world |+------------------------------------------------------+

acest exemplu arată scăparea tuturor caracterelor speciale din RE2.

+------------------------------------------------------------+| regexp_escape('a.b\c+d*e?fh$i(j)k{l}m=n!o<p>q|r:s-t') |+------------------------------------------------------------+| a\.b\c\+d\*e\?f\h$i\(j\)k\{l\}m\=n\!o\<p\>q\|r\:s\-t |+------------------------------------------------------------+

REGEXP_EXTRACT(subiect șir, model șir, index INT) scop: returnează grupul specificat () dintr-un șir bazat pe un model de expresie regulată. Grupul 0 se referă la întregul șir extras, în timp ce grupul 1, 2 și așa mai departe se referă la prima, a doua și așa mai departe(...)porțiune.

Tip retur: STRING

în Impala 2.0 și versiunile ulterioare, sintaxa expresiei regulate Impala este conformă cu sintaxa expresiei regulate extinse POSIX utilizată de Biblioteca Google RE2. Pentru detalii, consultați documentația RE2. Are cele mai multe expresii familiare din expresiile regulate din Perl, Python și așa mai departe, inclusiv .*? pentru meciurile non-greedy.

în Impala 2.0 și versiunile ulterioare, o modificare a bibliotecii de expresii regulate de bază ar putea provoca modificări ale modului în care expresiile regulate sunt interpretate de această funcție. Testați orice interogări care utilizează expresii regulate și ajustați modelele de Expresie, dacă este necesar.

deoarece interpretul impala-shell folosește caracterul \ pentru a scăpa, utilizați \ pentru a reprezenta caracterul de evacuare expresie regulată în orice expresii regulate pe care le trimiteți prin impala-shell . Ați putea prefera să utilizați nume de clasă de caractere echivalente, cum ar fi ] în loc de \d care ar trebui să scape ca \d.

Exemple:

acest exemplu arată cum grupul 0 se potrivește cu șirul de model complet, inclusiv porțiunea din afara oricărui grup () :

acest exemplu arată cum Grupul 1 se potrivește doar cu conținutul din primul grup () din șirul de modele:

spre deosebire de versiunile anterioare Impala, biblioteca de expresii regulate utilizată în Impala 2.0 și versiunile ulterioare acceptă idiomul .*? pentru meciurile non-greedy. Acest exemplu arată cum un șir de model care începe cu .*? se potrivește cu cea mai scurtă porțiune posibilă a șirului sursă, returnând setul din dreapta de Litere Mici. Un șir de model care începe și se termină cu .*? găsește două potriviri potențiale de lungime egală și returnează primul găsit (setul din stânga de Litere Mici).

REGEXP_LIKE(STRING source, STRING pattern) scop: returneazătruesaufalsepentru a indica dacă șirul sursă conține oriunde în interiorul acestuia expresia regulată dată de model. Al treilea argument opțional constă în steaguri de Litere care schimbă modul în care se efectuează potrivirea, cum ar fiipentru potrivirea insensibilă la majuscule.

sintaxă:

steagurile pe care le puteți include în al treilea argument opțional sunt:

  • c: potrivire sensibilă la majuscule (implicit).
  • i: potrivire insensibilă la majuscule. Dacă mai multe instanțe de c și i sunt incluse în al treilea argument, ultima astfel de opțiune are prioritate.
  • m: potrivire multi-linie. Operatorii ^ și $ se potrivesc cu începutul sau sfârșitul oricărei linii din șirul sursă, nu cu începutul și sfârșitul întregului șir.
  • n: potrivire Newline. Operatorul . se poate potrivi cu caracterul newline. Un operator de repetiție, cum ar fi .* poate potrivi o porțiune a șirului sursă care se întinde pe mai multe linii.

Tip retur: BOOLEAN

în Impala 2.0 și versiunile ulterioare, sintaxa expresiei regulate Impala este conformă cu sintaxa expresiei regulate extinse POSIX utilizată de Biblioteca Google RE2. Pentru detalii, consultați documentația RE2. Are cele mai multe expresii familiare din expresiile regulate din Perl, Python și așa mai departe, inclusiv .*? pentru meciurile non-greedy.

În Impala 2.0 și mai târziu, o schimbare în biblioteca de expresii regulate de bază ar putea provoca modificări în modul în care expresiile regulate sunt interpretate de această funcție. Testați orice interogări care utilizează expresii regulate și ajustați modelele de Expresie, dacă este necesar.

deoarece interpretul impala-shell folosește caracterul \ pentru a scăpa, utilizați \ pentru a reprezenta caracterul de evacuare expresie regulată în orice expresii regulate pe care le trimiteți prin impala-shell . Ați putea prefera să utilizați nume de clasă de caractere echivalente, cum ar fi ] în loc de \d care ar trebui să scape ca \d.

Exemple:

acest exemplu arată cum REGEXP_LIKE() poate testa existența diferitelor tipuri de modele de expresie regulată într-un șir sursă:

REGEXP_REPLACE(string initial, STRING pattern, string replacement) scop: returnează argumentul inițial cu modelul de expresie regulată înlocuit de șirul de argument final.

Tip retur: STRING

în Impala 2.0 și mai târziu, sintaxa Impala expression regular este conformă cu sintaxa POSIX Extended Regular Expression utilizată de Biblioteca Google RE2. Pentru detalii, consultați documentația RE2. Are cele mai multe expresii familiare din expresiile regulate din Perl, Python și așa mai departe, inclusiv .*? pentru meciurile non-greedy.

în Impala 2.0 și versiunile ulterioare, o modificare a bibliotecii de expresii regulate de bază ar putea provoca modificări ale modului în care expresiile regulate sunt interpretate de această funcție. Testați orice interogări care utilizează expresii regulate și ajustați modelele de Expresie, dacă este necesar.

deoarece interpretul impala-shell folosește caracterul \ pentru a scăpa, utilizați \ pentru a reprezenta caracterul de evacuare expresie regulată în orice expresii regulate pe care le trimiteți prin impala-shell . Ați putea prefera să utilizați nume de clasă de caractere echivalente, cum ar fi ] în loc de \d care ar trebui să scape ca \d.

Exemple:

aceste exemple arată cum puteți înlocui părți ale unui șir care se potrivesc unui model cu text de înlocuire, care poate include backreferences la orice () grupuri în șirul de model. Numerele backreference încep de la 1, și orice \ caractere trebuie să fie scăpat ca \.

înlocuiți un model de caractere cu text nou:

 > select regexp_replace('aaabbbaaa','b+','xyz');+------------------------------------------+| regexp_replace('aaabbbaaa', 'b+', 'xyz') |+------------------------------------------+| aaaxyzaaa |+------------------------------------------+Returned 1 row(s) in 0.11s

înlocuiți un model de caractere cu text de substituție care include textul original de potrivire:

 > select regexp_replace('aaabbbaaa','(b+)','<\1>');+----------------------------------------------+| regexp_replace('aaabbbaaa', '(b+)', '<\1>') |+----------------------------------------------+| aaa<bbb>aaa |+----------------------------------------------+Returned 1 row(s) in 0.11s

eliminați toate caracterele care nu sunt cifre:

repetare(STRING str, INT n) scop: returnează șirul de argumente repetat de un anumit număr de ori.

Tip retur: STRING

înlocuire (șir inițial, țintă șir, înlocuire șir) scop: Returnează argumentul inițial cu toate aparițiile șirului țintă înlocuite cu șirul de înlocuire.

Tip retur: STRING

note de Utilizare:

deoarece această funcție nu utilizează modele de expresii regulate, este de obicei mai rapidă decât REGEXP_REPLACE() pentru substituții simple de șiruri.

dacă orice argument este NULL, valoarea returnată este NULL.

potrivirea este sensibilă la majuscule și minuscule.

Dacă șirul de înlocuire conține o altă instanță a șirului țintă, expansiunea se efectuează o singură dată, în loc să se aplice din nou șirului nou construit.

Exemple:

REVERSE(STRING a) scop: returnează șirul argument cu caractere în ordine inversă.

Tip retur: STRING

dreapta(STRING a, int num_chars) vezi funcțiaSTRRIGHT. RPAD (STRING str, INT len, string pad) scop: returnează un șir de o lungime specificată, bazat pe primul șir argument. Dacă șirul specificat este prea scurt, acesta este căptușit în dreapta cu o secvență repetată a caracterelor din șirul pad. Dacă șirul specificat este prea lung, acesta este trunchiat în dreapta.

Tip retur: STRING

Rtrim(STRING a ) scop: returnează șirul argument cu toate aparițiile de caractere specificate de al doilea argument eliminat din partea dreaptă. Elimină spațiile dacă al doilea argument nu este specificat.

Tip retur: STRING

spațiu(int n) scop: returnează un șir concatenat al numărului specificat de spații. Prescurtare pentrurepeat(' ',n).

Tip retur: STRING

SPLIT_PART(STRING source, string delimiter, BIGINT index) scop: returnează partea solicitatăindexa șirului sursă de intrare împărțit de delimitator.

  • dacă indexul este un număr pozitiv, returnează partea indexth din stânga în șirul sursă.
  • dacă indexul este un număr negativ, returnează partea indexth din dreapta în șirul sursă.
  • dacă indexul este 0, returnează o eroare.

delimitatorul poate consta din mai multe caractere, nu doar un singur caracter.

toate potrivirile delimitatorului se fac exact, fără a folosi modele de expresie regulată.

Tip retur: STRING

Exemple:

SPLIT_PART('x,y,z',',',2) returnează 'y'.

SPLIT_PART('one***two***three','***',2) returnează 'two'.

SPLIT_PART('[email protected]@[email protected]@ghi', '@@', 3) returnează 'ghi'.

SPLIT_PART('[email protected]@[email protected]@ghi', '@@', -3) returnează 'abc'.

Strleft(STRING a, int num_chars) scop: returnează caracterele din stânga șirului. Stenografie pentru un apel lasubstr()cu 2 argumente.

Tip retur: STRING

STRRIGHT(STRING a, int num_chars) scop: returnează caracterele din dreapta șirului. Stenografie pentru un apel lasubstr()cu 2 argumente.

Tip retur: STRING

SUBSTR(STRING a, int start ), subșir(STRING a, int start ) scop: returnează porțiunea șirului începând de la un punct specificat, opțional cu o lungime maximă specificată. Caracterele din șir sunt indexate începând de la 1.

Return type: STRING

TRANSLATE(STRING input, STRING from, STRING to) scop: returnează șirulinputcu fiecare caracter din argumentulfromînlocuit cu caracterul corespunzător din argumentulto. Caracterele sunt potrivite în ordinea în care apar înfromșito.

de exemplu: translate ('hello world','world','earth')returnează 'hetta earth'.

Tip retur: STRING

note de Utilizare:

dacă from conține mai multe caractere decât to, caracterele from care depășesc lungimea to sunt eliminate în rezultat.

de exemplu:

translate('abcdedg', 'bcd', '1') returnează 'a1eg'.

translate('Unit Number#2', '# ', '_') returnează 'UnitNumber_2'.

dacă from este NULL, funcția returnează NULL.

dacă to conține mai multe caractere decât from, caracterele suplimentare din to sunt ignorate.

dacă fromconține caractere duplicate, caracterul duplicat este înlocuit cu primul caracter care se potrivește în to.

de exemplu: translate ('hello','ll','67')returnează 'he66o'.

TRIM(STRING a) scop: returnează șirul de intrare cu ambele spații de conducere și la sfârșit eliminate. La fel ca trecerea șirului prin ambeleLTRIM()șiRTRIM().

note de Utilizare: adesea utilizate în timpul operațiunilor de curățare a datelor în timpul ciclului ETL, dacă valorile de intrare ar putea avea încă spații înconjurătoare. Pentru o funcție mai generală care poate elimina alte caractere principale și finale în afară de spații, consultați BTRIM().

Tip retur: STRING

superior(șir a), UCASE(șir a) Scop: returnează șirul argument convertit la toate majuscule.

Tip retur: STRING

note de Utilizare:

în Impala 2.5 și versiuni ulterioare, puteți simplifica interogările care utilizează multe apeluri UPPER() și LOWER() pentru a face comparații insensibile la majuscule, utilizând în schimb operatorii ILIKE sau IREGEXP.

Lasă un răspuns

Adresa ta de email nu va fi publicată.