IVF

Chasing Dreams

Impala string funktioner

  • alle de funktioner, der accepterer STRING argumenter, accepterer også VARCHAR og CHAR typerne introduceret i Impala 2.0.
  • når VARCHAR eller CHARværdier overføres til en funktion, der returnerer en strengværdi, normaliseres returtypen til STRING. For eksempel giver et opkald til concat() med en blanding af STRING, VARCHAR og CHAR argumenter et STRING resultat.

funktion reference:

Impala understøtter følgende strengfunktioner:

  • ASCII
  • BASE64DECODE
  • BASE64ENCODE
  • BTRIM
  • CHAR_LENGTH
  • CHR
  • SAMMENKÆDNING
  • SAMMENKÆDNING
  • SAMMENKÆDNING
  • SAMMENKÆDNING
  • FIND_IN_SET
  • GROUP_CONCAT
  • INITCAP
  • INSTR
  • JARO_DISTANCE, JARO_DISTANCE
  • JARO_SIMILARITET, JARO_SIM
  • JARO_VINKER_DISTANCE, JV_DST
  • JARO_VINKER_SIMILARITET, JV_SIM
  • LEFT
  • LEVENSHTEIN, LE_DST
  • FIND
  • LAVERE, LCASE
  • LPAD
  • LTRI
  • PARSE_URL
  • REGEKSP_ESCAPE
  • REGEKSP_EKSTRAKT
  • REGEKSP_LIKE
  • gentag
  • erstat
  • REVERSE
  • højre
  • RPAD
  • RTRIM
  • plads
  • SPLIT_PART
  • STRLEFT
  • STRRIGHT
  • SUBSTR, substring
  • oversæt
  • trim
  • upper, UCASE

ASCII(string str) formål: returnerer den numeriske ASCII-kode for argumentets første tegn.

returtype: INT

BASE64DECODE (STRING str) formål:

returtype: STRING

Brugsnoter:

funktionerne BASE64ENCODE() og BASE64DECODE() bruges typisk i kombination til at gemme i en Impala-tabelstrengdata, der er problematisk at gemme eller transmittere. For eksempel kan du bruge disse funktioner til at gemme strengdata, der bruger en anden kodning end UTF-8, eller til at transformere værdierne i sammenhænge, der kræver ASCII-værdier, f.eks. Husk, at base64-kodede værdier giver forskellige resultater for strengfunktioner som LENGTH(), MAX() og MIN(), end når disse funktioner kaldes med de ukodede strengværdier.

alle returværdier produceret af BASE64ENCODE() er et multiplum af 4 byte i længden. Alle argumentværdier, der leveres til BASE64DECODE(), skal også være et multiplum af 4 byte i længden. Hvis en base64-kodet værdi ellers ville have en anden længde, kan den polstres med efterfølgende = tegn for at nå en længde, der er et multiplum af 4 byte.

hvis argumentstrengen til BASE64DECODE()ikke repræsenterer en gyldig Base64-kodet værdi, underlagt begrænsningerne i Impala-implementeringen, såsom det tilladte tegnsæt, returnerer funktionen NULL.

eksempler:

BASE64ENCODE (STRING str) formål:

returtype: STRING

Brugsnoter:

funktionerne BASE64ENCODE() og BASE64DECODE() bruges typisk i kombination til at gemme i en Impala-tabelstrengdata, der er problematisk at gemme eller transmittere. For eksempel kan du bruge disse funktioner til at gemme strengdata, der bruger en anden kodning end UTF-8, eller til at transformere værdierne i sammenhænge, der kræver ASCII-værdier, f.eks. Husk, at base64-kodede værdier giver forskellige resultater for strengfunktioner som LENGTH(), MAX() og MIN(), end når disse funktioner kaldes med de ukodede strengværdier.

alle returværdier produceret af BASE64ENCODE() er et multiplum af 4 byte i længden. Alle argumentværdier, der leveres til BASE64DECODE(), skal også være et multiplum af 4 byte i længden. Hvis en base64-kodet værdi ellers ville have en anden længde, kan den polstres med efterfølgende = tegn for at nå en længde, der er et multiplum af 4 byte.

eksempler:

BTRIM(streng a), BTRIM(streng a, streng chars_to_trim) formål: fjerner alle forekomster af et eller flere tegn fra starten og slutningen af enSTRINGværdi. Som standard fjerner kun mellemrum. Hvis et ikke –NULLvalgfrit andet argument er angivet, fjerner funktionen alle forekomster af tegn i det andet argument fra begyndelsen og slutningen af strengen.

returtype: STRING

eksempler:

følgende eksempler viser standard btrim() opførsel, og hvad der ændres, når du angiver det valgfri andet argument. Alle eksemplerne beslaglægger outputværdien med , så du kan se eventuelle ledende eller efterfølgende mellemrum i resultatet btrim(). Som standard fjerner funktionen og antallet af både ledende og efterfølgende mellemrum. Når det andet argument er angivet, fjernes et hvilket som helst antal forekomster af ethvert tegn i det andet argument fra starten og slutningen af inputstrengen; i dette tilfælde fjernes mellemrum ikke (medmindre de er en del af det andet argument), og eventuelle forekomster af tegnene fjernes ikke, hvis de ikke kommer lige i begyndelsen eller slutningen af strengen.

CHAR_LENGTH(streng a), CHARACTER_LENGTH (streng a) formål: returnerer længden i tegn i argumentstrengen. Aliaser for funktionenlength().

returtype: INT

CHR(int character_code) formål: Returnerer et tegn angivet med en decimalkodepunktsværdi. Fortolkningen og visningen af den resulterende karakter afhænger af dit system locale. Da konsekvent behandling af Impala-strengværdier kun garanteres for værdier inden for ASCII-området, skal du kun bruge denne funktion til værdier svarende til ASCII-tegn. Især returnerer parameterværdier større end 255 en tom streng.

returtype: STRING

Brugsnoter: kan bruges som den inverse af funktionen ascii(), som konverterer et tegn til dets numeriske ASCII-kode.

eksempler:

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

CONCAT(streng a, streng B…) Formål: returnerer en enkelt streng, der repræsenterer alle de argumentværdier, der er sammenføjet.

hvis et argument er NULL, returnerer funktionen NULL.

returtype: STRING

bemærkninger til brug: concat() og concat_ws() er egnede til sammenkædning af værdierne for flere kolonner i samme række, mens group_concat() sammenkæder værdier fra forskellige rækker.

sammenkædninger (STRING sep, STRING a, STRING b…) Formål: returnerer en enkelt streng, der repræsenterer den anden og følgende argumentværdier sammenføjet, afgrænset af en specificeret separator.

hvis et argument er NULL, returnerer funktionen NULL.

returtype: STRING

brug noter: concat() og concat_ws() er egnede til sammenkædning af værdierne for flere kolonner inden for samme række, mens group_concat() sammenkæder værdier fra forskellige rækker.

FIND_IN_SET(STRING str, STRING strList) formål: returnerer positionen (startende fra 1) for den første forekomst af en specificeret streng inden for en kommasepareret streng. ReturnererNULLhvis et af argumenterne erNULL, 0 hvis søgestrengen ikke findes, eller 0 hvis søgestrengen indeholder et komma.

returtype: INT

GROUP_CONCAT (streng s ) formål: Returnerer en enkelt streng, der repræsenterer argumentværdien sammenkædet for hver række i resultatsættet. Hvis den valgfri separatorstreng er angivet, tilføjes separatoren mellem hvert par sammenkædede værdier.

returtype: STRING

bemærkninger til brug: concat() og concat_ws() er egnede til sammenkædning af værdierne for flere kolonner i samme række, mens group_concat() sammenkæder værdier fra forskellige rækker.

returnerer som standard en enkelt streng, der dækker hele resultatsættet. Hvis du vil medtage andre kolonner eller værdier i resultatsættet eller producere flere sammenkædede strenge til undergrupper af rækker, skal du medtage en GROUP BY – klausul i forespørgslen.

strengt taget er group_concat() en aggregeringsfunktion, ikke en skalarfunktion som de andre på denne liste. For yderligere detaljer og eksempler, se funktionen GROUP_CONCAT.

INITCAP(STRING str) formål: returnerer inputstrengen med det første bogstav i hvert ord med store bogstaver og alle andre bogstaver med små bogstaver.

returtype: STRING

eksempel:

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

INSTR (STRING str, STRING substr ]) formål: returnerer positionen (startende fra 1) for den første forekomst af en substring inden for en længere streng.

returtype: INT

bemærkninger til brug:

hvis substr ikke er til stede i str, returnerer funktionen 0.

de valgfri tredje og fjerde argumenter giver dig mulighed for at finde forekomster af substr andet end den første forekomst, der starter fra venstre.

JARO_DISTANCE(streng str1, streng str2) JARO_DST (streng str1, streng str2) formål: returnerer Jaro afstanden mellem to input strenge. Jaro-afstanden er et mål for lighed mellem to strenge og er komplementær tilJARO_SIMILARITY(), dvs. (1 –JARO_SIMILARITY()).

returtype: DOUBLE

Brugsnoter:

hvis de to inputstrenge er identiske, returnerer funktionen 0,0.

hvis der ikke er noget matchende tegn mellem inputstrengene, returnerer funktionen 1.0.

hvis en af inputstrengene er NULL, returnerer funktionen NULL.

hvis længden af en af inputstrengene er større end 255 tegn, returnerer funktionen en fejl.

JARO_SIMILARITET(streng str1, streng str2) JARO_SIM (streng str1, streng str2) formål: returnerer Jaro-ligheden mellem to strenge. Jo højere Jaro-ligheden for to strenge er, jo mere ens er strengene.

returtype: DOUBLE

Brugsnoter:

hvis de to inputstrenge er identiske, returnerer funktionen 1.0.

hvis der ikke er noget matchende tegn mellem inputstrengene, returnerer funktionen 0,0.

hvis en af inputstrengene er NULL, returnerer funktionen NULL.

hvis længden af en af inputstrengene er større end 255 tegn, returnerer funktionen en fejl.

JARO_VINKLER_DISTANCE(streng str1, streng str2) JV_DST (streng str1, streng str2) formål: returnerer Jaro-Vinklerafstanden for to inputstrenge. Det er komplementær afJARO_WINKLER_SIMILARITY(), dvs. 1 –JARO_WINKLER_SIMILARITY().

returtype: DOUBLE

Brugsnoter:

hvis de to inputstrenge er identiske, returnerer funktionen 0,0.

hvis der ikke er noget matchende tegn mellem inputstrengene, returnerer funktionen 1.0.

funktionen returnerer en fejl i følgende tilfælde:

  • længden af en af inputstrengene er større end 255 tegn.
  • scaling_factor < 0, 0 eller scaling_factor > 0.25
  • boost_threshold < 0.0 eller boost_threshold > 1.0

hvis en af inputstrengene er NULL, returnerer funktionen NULL.

standard skaleringsfaktoren er 0,1.

præfiksvægten anvendes kun, hvis Jaro-afstanden overstiger den valgfri boost_threshold. Som standard er boost_threshold-værdien 0,7.

JARO_VINKLER_SIMILARITET(streng str1, streng str2) JARO_SIM (streng str1, streng str2) formål: returnerer Jaro-Vinklers lighed mellem to inputstrenge. Det Jaro-vinkler lighed bruger en præfiksvægt, specificeret af skaleringsfaktor, hvilket giver mere gunstige ratings til strenge, der matcher fra starten for en indstillet præfikslængde, op til maksimalt fire tegn.

brug Jaro eller Jaro-funktioner til at udføre uklare kampe på relativt korte strenge, f.eks.

returtype: DOUBLE

Brugsnotater:

hvis de to inputstrenge er identiske, returnerer funktionen 1.0.

hvis der ikke er noget matchende tegn mellem inputstrengene, returnerer funktionen 0,0.

funktionen returnerer en fejl i følgende tilfælde:

  • længden af en af inputstrengene er større end 255 tegn.
  • scaling_factor < 0, 0 eller scaling_factor > 0.25
  • boost_threshold < 0.0 eller boost_threshold > 1.0

hvis en af inputstrengene er NULL, returnerer funktionen NULL.

standard skaleringsfaktoren er 0,1.

præfiksvægten anvendes kun, hvis Jaro-ligheden overstiger den valgfri boost_threshold. Som standard er boost_threshold-værdien 0,7.

venstre (streng A, int num_chars) se funktionenSTRLEFT(). Længde (streng a) formål: returnerer længden i tegn i argumentstrengen.

returtype: INT

LEVENSHTEIN(streng str1, streng str2), LE_DST(streng str1, streng str2) formål: returnerer Levenshtein-afstanden mellem to inputstrenge. Levenshtein-afstanden mellem to strenge er det mindste antal redigeringer med et tegn, der kræves for at omdanne en streng til en anden. Funktionen angiver, hvor forskellige inputstrengene er.

returtype: INT

Brugsnotater:

hvis inputstrenge er ens, returnerer funktionen 0.

hvis et input overstiger 255 tegn, returnerer funktionen en fejl.

hvis en af inputstrengene er NULL, returnerer funktionen NULL.

hvis længden af en inputstreng er nul, returnerer funktionen længden af den anden streng.

eksempel:

LEVENSHTEIN ('welcome', 'We come') returnerer 2, Første ændring for at erstatte ‘w‘ til ‘W‘ og derefter erstatte ‘l ‘ til et mellemrum.

find (STRING substr, STRING str) formål: returnerer positionen (startende fra 1) for den første forekomst af en substring inden for en længere streng, eventuelt efter en bestemt position.

returtype: INT

lavere(streng a), LCASE(streng a) formål: returnerer argumentstrengen konverteret til små bogstaver.

returtype: STRING

brug noter:

i Impala 2.5 og højere kan du forenkle forespørgsler, der bruger mange UPPER() og LOWER() opkald til at foretage store og små bogstaver ved at bruge operatorerne ILIKE eller IREGEXP i stedet.

LPAD(STRING str, INT len, STRING pad) formål: returnerer en streng af en bestemt længde, baseret på den første argumentstreng. Hvis den angivne streng er for kort, er den polstret til venstre med en gentagende sekvens af tegnene fra padstrengen. Hvis den angivne streng er for lang, afkortes den til højre.

returtype: STRING

LTRIM (streng a ) formål: Returnerer argumentstrengen med alle forekomster af tegn angivet af det andet argument fjernet fra venstre side. Fjerner mellemrum, hvis det andet argument ikke er angivet.

returtype: STRING

PARSE_URL(STRING urlString, STRING parttoekstract ) formål: Returnerer den del af en URL, der svarer til en bestemt del. Delargumentet kan være'PROTOCOL','HOST','PATH','REF','AUTHORITY','FILE','USERINFO', eller'QUERY'. Store bogstaver er påkrævet for disse bogstavelige værdier. Når du anmoder omQUERY– delen af URL ‘ en, kan du eventuelt angive en nøgle for kun at hente den tilknyttede værdi fra nøgleværdiparrene i forespørgselsstrengen.

returtype: STRING

Brugsnotater: denne funktion er vigtig for den traditionelle Hadoop-brugssag til fortolkning af internetlogfiler. Hvis trafikdataene f.eks. indeholder rå URL ‘ er, der ikke er opdelt i separate tabelkolonner, kan du tælle besøgende på en bestemt side ved at udpakke feltet 'PATH' eller 'FILE' eller analysere søgetermer ved at udpakke den tilsvarende nøgle fra feltet 'QUERY'.

REGEKSP_ESCAPE(STRENGKILDE) formål: funktionenREGEXP_ESCAPEreturnerer en streng, der er undsluppet for specialtegnet i RE2-biblioteket, så specialtegnene fortolkes bogstaveligt snarere end som specialtegn. Følgende specialtegn undslap af funktionen:

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

returtype: string

i Impala 2.0 og nyere er syntaksen for Impala regulært udtryk i overensstemmelse med syntaksen for udvidet Regulært udtryk, der bruges af Google RE2-biblioteket. For detaljer, se RE2 dokumentation. Det har de fleste idiomer kendt fra regulære udtryk i Perl, Python og så videre, herunder .*? for ikke-grådige kampe.

i Impala 2.0 og nyere kan en ændring i det underliggende regulære udtryksbibliotek medføre ændringer i den måde, regulære udtryk fortolkes af denne funktion. Test eventuelle forespørgsler, der bruger regulære udtryk, og juster om nødvendigt udtryksmønstrene.

da Impala-shell-tolken bruger tegnet \ til at undslippe, skal du bruge \ til at repræsentere det regulære udtryk escape-tegn i alle regulære udtryk, du sender gennem impala-shell . Du foretrækker måske at bruge de tilsvarende tegnklassenavne, såsom ] i stedet for \d, som du bliver nødt til at undslippe som \d.

eksempler:

dette eksempel viser undslippe en af specialtegn i RE2.

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

dette eksempel viser undslippe alle specialtegn i 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 |+------------------------------------------------------------+

REGEKS(STRENGEMNE, STRENGMØNSTER, int-indeks) formål: Returnerer den angivne () gruppe fra en streng baseret på et regulært udtryksmønster. Gruppe 0 henviser til hele den ekstraherede streng, mens gruppe 1, 2 og så videre henviser til den første, anden og så videre(...)del.

returtype: STRING

i Impala 2.0 og nyere er syntaksen for Impala regulært udtryk i overensstemmelse med syntaksen for udvidet Regulært udtryk, der bruges af Google RE2-biblioteket. For detaljer, se RE2 dokumentation. Det har de fleste idiomer kendt fra regulære udtryk i Perl, Python og så videre, herunder .*? for ikke-grådige kampe.

i Impala 2.0 og nyere kan en ændring i det underliggende regulære udtryksbibliotek medføre ændringer i den måde, regulære udtryk fortolkes af denne funktion. Test eventuelle forespørgsler, der bruger regulære udtryk, og juster om nødvendigt udtryksmønstrene.

da Impala-shell-tolken bruger tegnet \ til at undslippe, skal du bruge \ til at repræsentere det regulære udtryk escape-tegn i alle regulære udtryk, du sender gennem impala-shell . Du foretrækker måske at bruge de tilsvarende tegnklassenavne, såsom ] i stedet for \d, som du bliver nødt til at undslippe som \d.

eksempler:

dette eksempel viser, hvordan gruppe 0 matcher den fulde mønsterstreng, inklusive delen uden for enhver () gruppe:

dette eksempel viser, hvordan gruppe 1 kun matcher indholdet i den første () gruppe i mønsterstrengen:

i modsætning til tidligere Impala-udgivelser understøtter det regulære udtryksbibliotek, der bruges i Impala 2.0 og senere, .*? idiomet til ikke-grådige kampe. Dette eksempel viser, hvordan en mønsterstreng, der starter med .*?, matcher den kortest mulige del af kildestrengen og returnerer det højeste sæt små bogstaver. En mønsterstreng, der både starter og slutter med .*?, finder to potentielle kampe af samme længde og returnerer den første fundne (det venstre sæt med små bogstaver).

REGEKSP_LIKE(STRING source, STRING pattern) formål: returnerertrueellerfalsefor at angive, om kildestrengen indeholder et vilkårligt sted inde i det regulære udtryk givet af mønsteret. Det valgfri tredje argument består af bogstavflag, der ændrer, hvordan kampen udføres, såsomifor store og små bogstaver.

syntaks:

de flag, du kan medtage i det valgfri tredje argument, er:

  • c: store og små bogstaver (standard).
  • i: Case-ufølsom matching. Hvis flere forekomster af c og i er inkluderet i det tredje argument, har den sidste sådan mulighed forrang.
  • m: multi-line matching. Operatorerne ^ og $ matcher starten eller slutningen af en hvilken som helst linje i kildestrengen, ikke starten og slutningen af hele strengen.
  • n: ny linje matching. Operatoren . kan matche det nye linjetegn. En gentagelsesoperator som .* kan matche en del af kildestrengen, der spænder over flere linjer.

returtype: BOOLEAN

i Impala 2.0 og nyere er syntaksen for Impala regulært udtryk i overensstemmelse med syntaksen for udvidet Regulært udtryk, der bruges af Google RE2-biblioteket. For detaljer, se RE2 dokumentation. Det har de fleste idiomer kendt fra regulære udtryk i Perl, Python og så videre, herunder .*? for ikke-grådige kampe.

I Impala 2.0 og senere kan en ændring i det underliggende regulære udtryksbibliotek medføre ændringer i den måde, regulære udtryk fortolkes af denne funktion. Test eventuelle forespørgsler, der bruger regulære udtryk, og juster om nødvendigt udtryksmønstrene.

da Impala-shell-tolken bruger tegnet \ til at undslippe, skal du bruge \ til at repræsentere det regulære udtryk escape-tegn i alle regulære udtryk, du sender gennem impala-shell . Du foretrækker måske at bruge de tilsvarende tegnklassenavne, såsom ] i stedet for \d, som du bliver nødt til at undslippe som \d.

eksempler:

dette eksempel viser, hvordan REGEXP_LIKE() kan teste for eksistensen af forskellige former for regulære udtryksmønstre inden for en kildestreng:

REGEKSPLACE(streng initial, streng mønster, streng udskiftning) formål: returnerer det oprindelige argument med det regulære udtryk mønster erstattet af den endelige argumentstreng.

returtype: STRING

i Impala 2.0 og senere er syntaksen for Impalas regulære udtryk i overensstemmelse med syntaksen for udvidet Regulært udtryk, der bruges af Google RE2-biblioteket. For detaljer, se RE2 dokumentation. Det har de fleste idiomer kendt fra regulære udtryk i Perl, Python og så videre, herunder .*? for ikke-grådige kampe.

i Impala 2.0 og nyere kan en ændring i det underliggende regulære udtryksbibliotek medføre ændringer i den måde, regulære udtryk fortolkes af denne funktion. Test eventuelle forespørgsler, der bruger regulære udtryk, og juster om nødvendigt udtryksmønstrene.

da Impala-shell-tolken bruger tegnet \ til at undslippe, skal du bruge \ til at repræsentere det regulære udtryk escape-tegn i alle regulære udtryk, du sender gennem impala-shell . Du foretrækker måske at bruge de tilsvarende tegnklassenavne, såsom ] i stedet for \d, som du bliver nødt til at undslippe som \d.

eksempler:

disse eksempler viser, hvordan du kan erstatte dele af en streng, der matcher et mønster, med erstatningstekst, som kan indeholde backreferences til alle () grupper i mønsterstrengen. Backreferencenumrene starter ved 1, og alle \ tegn skal undslippes som \.

Erstat et tegnmønster med ny tekst:

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

erstatte et tegnmønster med substitutionstekst, der indeholder den oprindelige matchende tekst:

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

Fjern alle tegn, der ikke er cifre:

gentag(STRING str, INT n) formål: returnerer argumentstrengen gentaget et angivet antal gange.

returtype: STRING

udskift (streng initial, STRENGMÅL, streng udskiftning) formål: Returnerer det oprindelige argument med alle forekomster af målstrengen erstattet af erstatningsstrengen.

returtype: STRING

Brugsnotater:

da denne funktion ikke bruger regulære udtryksmønstre, er den typisk hurtigere end REGEXP_REPLACE() for simple strengsubstitutioner.

hvis et argument er NULL, er returværdien NULL.

Matching er store og små bogstaver.

hvis udskiftningsstrengen indeholder en anden forekomst af målstrengen, udføres udvidelsen kun en gang i stedet for at anvende igen på den nybyggede streng.

eksempler:

omvendt(streng a) formål: returnerer argumentstrengen med tegn i omvendt rækkefølge.

returtype: STRING

højre(streng A, int num_chars) se funktionenSTRRIGHT. RPAD (STRING str, INT len, STRING pad) formål: returnerer en streng af en bestemt længde, baseret på den første argumentstreng. Hvis den angivne streng er for kort, er den polstret til højre med en gentagende sekvens af tegnene fra padstrengen. Hvis den angivne streng er for lang, afkortes den til højre.

returtype: STRING

Rtrim(streng a ) formål: returnerer argumentstrengen med alle forekomster af tegn angivet af det andet argument fjernet fra højre side. Fjerner mellemrum, hvis det andet argument ikke er angivet.

returtype: STRING

mellemrum(INT n) formål: returnerer en sammenkædet streng af det angivne antal mellemrum. Stenografi forrepeat(' ',n).

returtype: STRING

SPLIT_PART(STRENGKILDE, STRENGAFGRÆNSNING, BIGINT-indeks) formål: Returnerer den ønskedeindexdel af inputkildestrengen opdelt af afgrænseren.

  • hvis indekset er et positivt tal, returnerer indeksdelen fra venstre i kildestrengen.
  • hvis indekset er et negativt tal, returnerer indeksdelen fra højre i kildestrengen.
  • hvis indekset er 0, returnerer en fejl.

afgrænseren kan bestå af flere tegn, ikke kun et enkelt tegn.

al matchning af afgrænseren udføres nøjagtigt uden brug af regulære udtryksmønstre.

returtype: STRING

eksempler:

SPLIT_PART('x,y,z',',',2) vender tilbage 'y'.

SPLIT_PART('one***two***three','***',2)vender tilbage 'two'.

SPLIT_PART('[email protected]@[email protected]@ghi', '@@', 3)vender tilbage 'ghi'.

SPLIT_PART('[email protected]@[email protected]@ghi', '@@', -3)vender tilbage 'abc'.

STRLEFT (streng A, int num_chars) formål: returnerer de længst til venstre tegn i strengen. Stenografi for et opkald tilsubstr()med 2 argumenter.

returtype: STRING

STRRIGHT(streng A, int num_chars) formål: returnerer de højeste tegn i strengen. Stenografi for et opkald tilsubstr()med 2 argumenter.

returtype: STRING

SUBSTR(streng A, int start ), SUBSTRING(streng a, int start ) formål: Returnerer den del af strengen, der starter ved et bestemt punkt, eventuelt med en specificeret maksimal længde. Tegnene i strengen indekseres fra 1.

returtype: STRING

oversæt(STRENGINPUT, streng fra, streng til) formål: returnerer strengeninputmed hvert tegn i argumentetfromerstattet med det tilsvarende tegn i argumentetto. Tegnene Matches i den rækkefølge, de vises ifromogto.

for eksempel: translate ('hello world','world','earth') returnerer 'hetta earth'.

returtype: STRING

Brugsnoter:

hvis from indeholder flere tegn end to, fjernes de from tegn, der ligger uden for længden af to i resultatet.

for eksempel:

translate('abcdedg', 'bcd', '1') vender tilbage 'a1eg'.

translate('Unit Number#2', '# ', '_')vender tilbage 'UnitNumber_2'.

hvis from er NULL, returnerer funktionen NULL.

hvis to indeholder flere tegn end from, ignoreres de ekstra tegn i to.

hvis fromindeholder dubletter, erstattes dubletter med det første matchende tegn i to.

for eksempel: translate ('hello','ll','67')returnerer 'he66o'.

TRIM (streng a) formål: returnerer inputstrengen med både for-og efterstillede mellemrum fjernet. Det samme som at føre strengen gennem bådeLTRIM()ogRTRIM().

brugsnoter: bruges ofte under datarensningsoperationer under ETL-cyklussen, hvis inputværdier stadig kan have omgivende rum. Se BTRIM()for en mere generel funktion, der kan fjerne andre førende og efterfølgende tegn udover mellemrum.

returtype: STRING

øvre(streng a), UCASE(streng a) formål: returnerer argumentstrengen konverteret til alle store bogstaver.

returtype: STRING

bemærkninger til brug:

i Impala 2.5 og nyere kan du forenkle forespørgsler, der bruger mange UPPER() og LOWER() opkald til at foretage store og små bogstaver ved at bruge operatørerne ILIKE eller IREGEXP i stedet.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.