IVF

Chasing Dreams

Impala streng funksjoner

  • alle funksjonene som godtar argumentene STRING, godtar også typene VARCHAR og CHAR introdusert I Impala 2.0.
  • når VARCHAR eller CHAR verdier sendes til en funksjon som returnerer en strengverdi, normaliseres returtypen til STRING. Et kall til concat() med en blanding av STRING, VARCHAR og CHAR – argumenter gir for eksempel et STRING – resultat.

Funksjon referanse:

Impala støtter følgende strengfunksjoner:

  • ASCII
  • BASE64DEKODE
  • BTRIM
  • CHAR_LENGTH
  • CHR
  • KONKAT
  • KONKAT_WS
  • FIND_IN_SET
  • GROUP_CONCAT
  • INITCAP
  • INSTR
  • JARO_AVSTAND, JARO_AVSTAND
  • JARO_AVSTAND, JW_DST
  • JARO_WINKER_SIMILARITY, JW_SIM
  • VENSTRE
  • LENGDE
  • LEVENSHTEIN, LE_DST
  • FINN
  • NEDRE, LCASE
  • LPAD
  • LTRI
  • PARSE_URL
  • REGEXP_ESCAPE
  • REGEXP_EXTRACT
  • REGEXP_LIKE
  • REGEXP_REPLACE
  • GJENTA
  • ERSTATT
  • OMVENDT
  • HØYRE
  • >

  • RPAD
  • RTRIM
  • MELLOMROM
  • SPLIT_PART
  • STRLEFT
  • STRRIGHT
  • SUBSTR, SUBSTRING
  • OVERSETT
  • TRIM
  • øvre, ucase

ASCII(STRING STR) FORMÅL: RETURNERER DEN NUMERISKE ASCII-KODEN FOR DET FØRSTE TEGNET I ARGUMENTET.

Returtype: INT

BASE64DEKODE(STRENG str) Formål:

Returtype: STRING

Bruksmerknader:

funksjonene BASE64ENCODE() og BASE64DECODE() brukes vanligvis i kombinasjon for å lagre Data I En Impala – tabellstreng som er problematisk å lagre eller overføre. Du kan for eksempel bruke disse funksjonene til å lagre strengdata som bruker en annen koding enn UTF-8, eller til å transformere verdiene i sammenhenger som krever ASCII-verdier, for eksempel for partisjonstastkolonner. Husk at base64-kodede verdier gir forskjellige resultater for strengfunksjoner som LENGTH(), MAX() og MIN() enn når disse funksjonene kalles med de ukodede strengverdiene.

alle returverdier produsert av BASE64ENCODE() er et multiplum av 4 byte i lengde. Alle argumentverdier som leveres til BASE64DECODE(), må også være et multiplum på 4 byte. Hvis en base64-kodet verdi ellers ville ha en annen lengde, kan den polstres med etterfølgende = tegn for å nå en lengde som er et flertall på 4 byte.

hvis argumentstrengen til BASE64DECODE() ikke representerer en gyldig base64-kodet verdi, underlagt begrensningene I impala-implementeringen, for eksempel tillatt tegnsett, returnerer funksjonen NULL.

Eksempler:

BASE64ENCODE(STRENG str) Formål:

Returtype: STRING

Bruksmerknader:

funksjonene BASE64ENCODE() og BASE64DECODE() brukes vanligvis i kombinasjon for å lagre Data I En Impala – tabellstreng som er problematisk å lagre eller overføre. Du kan for eksempel bruke disse funksjonene til å lagre strengdata som bruker en annen koding enn UTF-8, eller til å transformere verdiene i sammenhenger som krever ASCII-verdier, for eksempel for partisjonstastkolonner. Husk at base64-kodede verdier gir forskjellige resultater for strengfunksjoner som LENGTH(), MAX() og MIN() enn når disse funksjonene kalles med de ukodede strengverdiene.

alle returverdier produsert av BASE64ENCODE() er et multiplum av 4 byte i lengde. Alle argumentverdier som leveres til BASE64DECODE(), må også være et multiplum på 4 byte. Hvis en base64-kodet verdi ellers ville ha en annen lengde, kan den polstres med etterfølgende = tegn for å nå en lengde som er et flertall på 4 byte.

Eksempler:

BTRIM(STRENG a), BTRIM(STRENG a, streng chars_to_trim) Formål: Fjerner Alle forekomster av ett eller flere tegn fra starten og slutten av enSTRING– verdi. Som standard fjerner bare mellomrom. Hvis et ikke –NULLvalgfritt andre argument er angitt, fjerner funksjonen alle forekomster av tegn i det andre argumentet fra begynnelsen og slutten av strengen.

Returtype: STRING

Eksempler:

følgende eksempler viser standard virkemåte btrim() og hva som endres når du angir det valgfrie andre argumentet. Alle eksemplene braketter utgangsverdien med slik at du kan se eventuelle ledende eller etterfølgende mellomrom i resultatet btrim(). Som standard fjerner funksjonen og antall både innledende og etterfølgende mellomrom. Når det andre argumentet er angitt, fjernes et hvilket som helst antall forekomster av et tegn i det andre argumentet fra starten og slutten av inndatastrengen; i dette tilfellet fjernes ikke mellomrom (med mindre de er en del av det andre argumentet), og eventuelle forekomster av tegnene fjernes ikke hvis de ikke kommer rett i begynnelsen eller slutten av strengen.

CHAR_LENGTH(STRENG a), CHARACTER_LENGTH (STRENG a) Formål: Returnerer lengden i tegnene i argumentstrengen. Aliaser forlength()– funksjonen.

Returtype: INT

CHR (int character_code) Formål: Returnerer et tegn angitt med en desimalkodepunktverdi. Tolkningen og visning av den resulterende karakter avhenger av systemet locale. Fordi konsekvent behandling Av Impala strengverdier er bare garantert for verdier i ASCII-området, bare bruke denne funksjonen for verdier som tilsvarer ASCII-tegn. Spesielt returnerer parameterverdier større enn 255 en tom streng.

Returtype: STRING

Bruksmerknader: Kan brukes som den inverse av funksjonen ascii(), som konverterer et tegn til sin numeriske ASCII-kode.

Eksempler:

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

KJEDE SAMMEN(STRENG a, STRENG b…) Formål: Returnerer en enkelt streng som representerer alle argumentverdiene som er koblet sammen.

hvis et argument er NULL, returnerer funksjonen NULL.

Returtype: STRING

Bruksmerknader: concat() og concat_ws() passer for å sette sammen verdiene for flere kolonner i samme rad, mens group_concat() knytter sammen verdier fra forskjellige rader.

CONCAT_WS(STRENG sep, STRENG a, STRENG b…) Formål: Returnerer en enkelt streng som representerer de andre og følgende argumentverdiene sammen, avgrenset av en angitt separator.

hvis et argument er NULL, returnerer funksjonen NULL.

Returtype: STRING

Bruk notater: concat() og concat_ws() passer for å sette sammen verdiene for flere kolonner i samme rad, mens group_concat() knytter sammen verdier fra forskjellige rader.

FIND_IN_SET(STRING str, STRING strList) Formål: Returnerer posisjonen (starter fra 1) for den første forekomsten av en angitt streng i en kommaseparert streng. ReturnererNULLhvis et av argumentene erNULL, 0 hvis søkestrengen ikke finnes, eller 0 hvis søkestrengen inneholder komma.

Returtype: INT

GROUP_CONCAT (STRENG s ) Formål: Returnerer en enkelt streng som representerer argumentverdien sammenkoblet sammen for hver rad i resultatsettet. Hvis den valgfrie separatorstrengen er angitt, legges separatoren til mellom hvert par sammenkjedede verdier.

Returtype: STRING

Bruksmerknader: concat() og concat_ws() passer for å sette sammen verdiene for flere kolonner i samme rad, mens group_concat() knytter sammen verdier fra forskjellige rader.

returnerer som standard en enkelt streng som dekker hele resultatsettet. Hvis du vil inkludere andre kolonner eller verdier i resultatsettet, eller for å produsere flere sammenkoblede strenger for delsett av rader, inkluderer du en GROUP BY – setning i spørringen.

Strengt tatt er group_concat() en aggregatfunksjon, ikke en skalarfunksjon som de andre i denne listen. Hvis du vil ha flere detaljer og eksempler, kan du se funksjonen GROUP_CONCAT.

Initcap(STRING str) Formål: Returnerer inngangsstrengen med den første bokstaven i hvert ord med store bokstaver og alle andre bokstaver i små bokstaver.

Returtype: STRING

Eksempel:

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

INSTR (STRING str, STRING substr ]) Formål: Returnerer posisjonen (fra 1) for den første forekomsten av en substring i en lengre streng.

Returtype: INT

Bruksmerknader:

hvis substratet ikke finnes i str, returnerer funksjonen 0.

det valgfrie tredje og fjerde argumentet lar deg finne forekomster av substratet annet enn den første forekomsten fra venstre.

JARO_DISTANCE(STRING str1, STRING str2) JARO_DST (STRING str1, STRING str2) Formål: Returnerer jaro-avstanden mellom to inngangsstrenger. Jaro-avstanden er et mål på likhet mellom to strenger og er komplementær avJARO_SIMILARITY()

, dvs. (1 –JARO_SIMILARITY()).

Returtype: DOUBLE

Bruksmerknader:

hvis de to inndatastrengene er identiske, returnerer funksjonen 0,0.

hvis det ikke er noe samsvarende tegn mellom inngangsstrengene, returnerer funksjonen 1.0.

hvis en av inndatastrengene er NULL, returnerer funksjonen NULL.

hvis lengden på en av inndatastrengene er større enn 255 tegn, returnerer funksjonen en feil.

JARO_SIMILARITY(STRING str1, STRING str2) JARO_SIM (STRING str1, STRING str2) Formål: Returnerer jaro likheten av to strenger. Jo høyere jaro likheten for to strenger er, jo mer lik strengene er.

Returtype: DOUBLE

Bruksmerknader:

hvis de to inngangsstrengene er identiske, returnerer funksjonen 1.0.

hvis det ikke er noe samsvarende tegn mellom inngangsstrengene, returnerer funksjonen 0,0.

hvis en av inndatastrengene er NULL, returnerer funksjonen NULL.

hvis lengden på en av inndatastrengene er større enn 255 tegn, returnerer funksjonen en feil.

JARO_WINKLER_DISTANCE(STRING str1, STRING str2) JW_DST (STRING str1, STRING str2) Formål: Returnerer jaro-Winkler avstanden til to inngangsstrenger. Det er komplementær avJARO_WINKLER_SIMILARITY(), dvs. 1 –JARO_WINKLER_SIMILARITY().

Returtype: DOUBLE

Bruksmerknader:

hvis de to inndatastrengene er identiske, returnerer funksjonen 0,0.

hvis det ikke er noe samsvarende tegn mellom inngangsstrengene, returnerer funksjonen 1.0.

funksjonen returnerer en feil i følgende tilfeller:

  • lengden på hver inndatastreng er større enn 255 tegn.
  • scaling_factor < 0,0 eller scaling_factor > 0.25
  • boost_threshold < 0.0 eller boost_threshold > 1.0

hvis en av inndatastrengene er NULL, returnerer funksjonen NULL.

standard skaleringsfaktor er 0,1.

prefiksvekten brukes bare hvis jaro-avstanden overskrider det valgfrie boost_threshold. Boost_threshold-verdien er som standard 0,7.

JARO_WINKLER_SIMILARITY(STRING str1, STRING str2) JARO_SIM (STRING str1, STRING str2) Formål: Returnerer Jaro-Winkler Likheten mellom to inngangsstrenger. Jaro-Winkler-likheten bruker en prefiksvekt, spesifisert av skaleringsfaktor, som gir gunstigere karakterer til strenger som samsvarer fra begynnelsen for en angitt prefikslengde, opptil maksimalt fire tegn.

Bruk jaro-eller jaro-Winkler-funksjoner for å utføre fuzzy kamper på relativt korte strenger, for eksempel å skrubbe brukerinnganger av navn mot postene i databasen.

Returtype: DOUBLE

bruksmerknader:

hvis de to inngangsstrengene er identiske, returnerer funksjonen 1.0.

hvis det ikke er noe samsvarende tegn mellom inngangsstrengene, returnerer funksjonen 0,0.

funksjonen returnerer en feil i følgende tilfeller:

  • lengden på hver inndatastreng er større enn 255 tegn.
  • scaling_factor < 0,0 eller scaling_factor > 0.25
  • boost_threshold < 0.0 eller boost_threshold > 1.0

hvis en av inndatastrengene er NULL, returnerer funksjonen NULL.

standard skaleringsfaktor er 0,1.

prefiksvekten brukes bare hvis jaro-likheten overskrider det valgfrie boost_threshold. Boost_threshold-verdien er som standard 0,7.

VENSTRE (STRENG a, int num_chars) Se funksjonenSTRLEFT(). LENGDE (STRENG a) Formål: Returnerer lengden i tegnene i argumentstrengen.

Returtype: INT

LEVENSHTEIN(STRING str1, STRING str2), LE_DST (STRING str1, STRING str2) Formål: Returnerer Levenshtein-avstanden mellom to inngangsstrenger. Levenshtein-avstanden mellom to strenger er det minste antall redigeringer med enkelt tegn som kreves for å transformere en streng til en annen. Funksjonen angir hvor forskjellige inngangsstrengene er.

Returtype: INT

bruksmerknader:

hvis inntastingsstrenger er like, returnerer funksjonen 0.

hvis en av inndataene overskrider 255 tegn, returnerer funksjonen en feil.

hvis en av inndatastrengene er NULL, returnerer funksjonen NULL.

hvis lengden på en inngangsstreng er null, returnerer funksjonen lengden på den andre strengen.

Eksempel:

LEVENSHTEIN ('welcome', 'We come') returnerer 2, først endre for å erstatte ‘w ‘ til ‘ W‘, og deretter erstatte’ l ‘ til et mellomrom.

LOCATE (STRING substr, STRING str) Formål: Returnerer posisjonen (starter fra 1) av den første forekomsten av en substring i en lengre streng, eventuelt etter en bestemt posisjon.

Returtype: INT

LAVERE(STRENG a), LCASE (STRENG a) Formål: Returnerer argumentstrengen konvertert til små bokstaver.

Returtype: STRING

Bruksmerknader:

I Impala 2.5 og høyere, kan du forenkle spørringer som bruker mange UPPER() og LOWER() samtaler til å gjøre store og små bokstaver sammenligninger, ved hjelp av operatorene ILIKE eller IREGEXP i stedet.

LPAD(STRING str, INT len, STRING pad) Formål: Returnerer en streng med en angitt lengde, basert på den første argumentstrengen. Hvis den angitte strengen er for kort, er den polstret til venstre med en gjentatt sekvens av tegnene fra padstrengen. Hvis den angitte strengen er for lang, blir den avkortet til høyre.

Returtype: STRING

LTRIM (STRENG a ) Formål: Returnerer argumentstrengen med alle forekomster av tegn angitt av det andre argumentet fjernet fra venstre side. Fjerner mellomrom hvis det andre argumentet ikke er angitt.

Returtype: STRING

PARSE_URL (STRING urlString, STRING partToExtract ) Formål: Returnerer delen AV EN URL som svarer til en angitt del. Argumentasjonen kan være'PROTOCOL','HOST','PATH','REF','AUTHORITY','FILE','USERINFO', eller'QUERY'. Store bokstaver er nødvendig for disse bokstavelige verdier. Når du ber omQUERY– delen av NETTADRESSEN, kan du eventuelt angi en nøkkel for å hente bare den tilknyttede verdien fra nøkkelverdiparene i spørringsstrengen.

Returtype: STRING

Bruksmerknader: denne funksjonen er viktig for den tradisjonelle Hadoop-bruken av tolking av weblogger. Hvis for eksempel webtrafikkdataene har rå Url-Adresser som ikke er delt inn i separate tabellkolonner, kan du telle besøkende til en bestemt side ved å trekke ut feltet 'PATH' eller 'FILE', eller analysere søkeord ved å trekke ut den tilsvarende nøkkelen fra feltet 'QUERY'.

REGEXP_ESCAPE(STRENGKILDE) Formål :funksjonenREGEXP_ESCAPEreturnerer en streng som er rømt for spesialtegnet I re2-biblioteket, slik at spesialtegnene tolkes bokstavelig snarere enn som spesialtegn. Følgende spesialtegn unngås av funksjonen:

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

Returtype: string

I Impala 2.0 og senere, Impala regulære uttrykk syntaks i samsvar MED POSIX Utvidet Regulære Uttrykk syntaks som brukes Av Google RE2 bibliotek. FOR detaljer, se re2-dokumentasjonen. Den har de fleste idiomer kjent fra regulære uttrykk I Perl, Python, og så videre, inkludert .*? for ikke-grådige kamper.

I Impala 2.0 og senere kan en endring i det underliggende regulære uttrykksbiblioteket føre til endringer i måten regulære uttrykk tolkes av denne funksjonen. Test eventuelle spørringer som bruker regulære uttrykk, og juster uttrykksmønstrene om nødvendig.

fordi impala-shell-tolken bruker \ – tegnet til å rømme, bruker du \ til å representere det regulære uttrykket escape-tegnet i alle regulære uttrykk som du sender inn gjennom impala-shell . Du foretrekker kanskje å bruke de tilsvarende tegnklassenavnene, for eksempel ] i stedet for \d som du må unnslippe som \d.

Eksempler:

dette eksemplet viser rømmer en av spesialtegn I RE2.

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

dette eksemplet viser rømmer alle spesialtegn 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 |+------------------------------------------------------------+

REGEXP_EXTRACT (STRENGEMØNSTER, STRENGMØNSTER, INT-indeks) Formål: Returnerer den angitte () gruppen fra en streng basert på et regulært uttrykksmønster. Gruppe 0 refererer til hele den ekstraherte strengen, mens gruppe 1, 2 og så videre refererer til den første, andre og så videre(...)delen.

Returtype: STRING

I Impala 2.0 og senere, Impala regulære uttrykk syntaks i samsvar MED POSIX Utvidet Regulære Uttrykk syntaks som brukes Av Google RE2 bibliotek. FOR detaljer, se re2-dokumentasjonen. Den har de fleste idiomer kjent fra regulære uttrykk I Perl, Python, og så videre, inkludert .*? for ikke-grådige kamper.

I Impala 2.0 og senere kan en endring i det underliggende regulære uttrykksbiblioteket føre til endringer i måten regulære uttrykk tolkes av denne funksjonen. Test eventuelle spørringer som bruker regulære uttrykk, og juster uttrykksmønstrene om nødvendig.

fordi impala-shell-tolken bruker \ – tegnet til å rømme, bruker du \ til å representere det regulære uttrykket escape-tegnet i alle regulære uttrykk som du sender inn gjennom impala-shell . Du foretrekker kanskje å bruke de tilsvarende tegnklassenavnene, for eksempel ] i stedet for \d som du må unnslippe som \d.

Eksempler:

dette eksemplet viser hvordan gruppe 0 samsvarer med hele mønsterstrengen, inkludert delen utenfor enhver () gruppe:

dette eksemplet viser hvordan gruppe 1 matcher bare innholdet i den første () gruppen i mønsterstrengen:

I Motsetning til i tidligere Impala-utgivelser, støtter det regulære uttrykksbiblioteket som brukes I Impala 2.0 og senere .*? idiomet for ikke-grådige kamper. Dette eksemplet viser hvordan en mønsterstreng som starter med .*?, samsvarer med kortest mulig del av kildestrengen, og returnerer det høyeste settet med små bokstaver. En mønsterstreng som både starter og slutter med .*? finner to mulige treff av samme lengde, og returnerer den første som ble funnet(det venstre settet med små bokstaver).

REGEXP_LIKE (STRENGKILDE, STRENGMØNSTER) Formål: Returnerertrueellerfalsefor å angi om kildestrengen inneholder det vanlige uttrykket gitt av mønsteret hvor som helst i det. Det valgfrie tredje argumentet består av bokstavflagg som endrer hvordan samsvaret utføres, for eksempelifor små og store bokstaver.

Syntaks:

flaggene du kan ta med i det valgfrie tredje argumentet, er:

  • c: Store og Små bokstaver matching(standard).
  • i: Case-ufølsom matching. Hvis flere forekomster av c og i er inkludert i det tredje argumentet, har det siste alternativet forrang.
  • m: Multi-line matching. Operatorene ^ og $ samsvarer med starten eller slutten av en linje i kildestrengen, ikke starten og slutten av hele strengen.
  • n: Newline matching. Operatoren . kan samsvare med linjeskift-tegnet. En repetisjonsoperator som .* kan samsvare med en del av kildestrengen som strekker seg over flere linjer.

Returtype: BOOLEAN

I Impala 2.0 og senere, Impala regulære uttrykk syntaks i samsvar MED POSIX Utvidet Regulære Uttrykk syntaks som brukes Av Google RE2 bibliotek. FOR detaljer, se re2-dokumentasjonen. Den har de fleste idiomer kjent fra regulære uttrykk I Perl, Python, og så videre, inkludert .*? for ikke-grådige kamper.

I Impala 2.0 og senere kan en endring i det underliggende regulære uttrykksbiblioteket føre til endringer i måten regulære uttrykk tolkes av denne funksjonen. Test eventuelle spørringer som bruker regulære uttrykk, og juster uttrykksmønstrene om nødvendig.

fordi impala-shell-tolken bruker \ – tegnet til å rømme, bruker du \ til å representere det regulære uttrykket escape-tegnet i alle regulære uttrykk som du sender inn gjennom impala-shell . Du foretrekker kanskje å bruke de tilsvarende tegnklassenavnene, for eksempel ] i stedet for \d som du må unnslippe som \d.

Eksempler:

dette eksemplet viser hvordan REGEXP_LIKE() kan teste for eksistensen av ulike typer regulære uttrykksmønstre i en kildestreng:

REGEXP_REPLACE (STRING initial, STRING pattern, STRING replacement) Formål: Returnerer det opprinnelige argumentet med det regulære uttrykksmønsteret erstattet av den endelige argumentstrengen.

Returtype: STRING

I Impala 2.0 og senere, Impala regulære uttrykk syntaks i samsvar MED POSIX Utvidet Regulære Uttrykk syntaks som brukes Av Google RE2 bibliotek. FOR detaljer, se re2-dokumentasjonen. Den har de fleste idiomer kjent fra regulære uttrykk I Perl, Python, og så videre, inkludert .*? for ikke-grådige kamper.

I Impala 2.0 og senere kan en endring i det underliggende regulære uttrykksbiblioteket føre til endringer i måten regulære uttrykk tolkes av denne funksjonen. Test eventuelle spørringer som bruker regulære uttrykk, og juster uttrykksmønstrene om nødvendig.

fordi impala-shell-tolken bruker \ – tegnet til å rømme, bruker du \ til å representere det regulære uttrykket escape-tegnet i alle regulære uttrykk som du sender inn gjennom impala-shell . Du foretrekker kanskje å bruke de tilsvarende tegnklassenavnene, for eksempel ] i stedet for \d som du må unnslippe som \d.

Eksempler:

disse eksemplene viser hvordan du kan erstatte deler av en streng som matcher et mønster med erstatningstekst, som kan inkludere tilbakereferanser til alle () grupper i mønsterstrengen. Backreference-tallene starter på 1, og eventuelle \ – tegn må unngås som \.

Erstatt 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 substitusjonstekst som inneholder den opprinnelige samsvarende teksten:

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

Fjern alle tegn som ikke er sifre:

GJENTA(STRING str, INT n) Formål: Returnerer argumentstrengen gjentatt et angitt antall ganger.

Returtype: STRING

ERSTATT (STRENG første, STRENG mål, STRENG erstatning) Formål: Returnerer det opprinnelige argumentet med alle forekomster av målstrengen erstattet av erstatningsstrengen.

Returtype: STRING

Bruksmerknader:

fordi denne funksjonen ikke bruker regulære uttrykksmønstre, er den vanligvis raskere enn REGEXP_REPLACE() for enkle strengsubstitusjoner.

hvis et argument er NULL, er returverdien NULL.

matching skiller mellom store og små bokstaver.

hvis erstatningsstrengen inneholder en annen forekomst av målstrengen, utføres utvidelsen bare en gang, i stedet for å søke på nytt på den nybygde strengen.

Eksempler:

OMVENDT(STRENG a) Formål: Returnerer argumentstrengen med tegn i omvendt rekkefølge.

Returtype: STRING

HØYRE (STRENG a, int num_chars) SeSTRRIGHT– funksjonen. RPAD (STRING str, INT len, STRING pad) Formål: Returnerer en streng med en angitt lengde, basert på den første argumentstrengen. Hvis den angitte strengen er for kort, er den polstret til høyre med en gjentatt sekvens av tegnene fra padstrengen. Hvis den angitte strengen er for lang, blir den avkortet til høyre.

Returtype: STRING

RTRIM (STRENG a ) Formål: Returnerer argumentstrengen med alle forekomster av tegn angitt av det andre argumentet fjernet fra høyre side. Fjerner mellomrom hvis det andre argumentet ikke er angitt.

Returtype: STRING

MELLOMROM(INT n) Formål: Returnerer en sammenkoblet streng av det angitte antall mellomrom. Forkortelse forrepeat(' ',n).

Returtype: STRING

SPLIT_PART (STRENGKILDE, STRENGAVGRENSNING, BIGINT-indeks) Formål: Returnerer den forespurteindexdelen av inngangskildestrengen delt av skilletegnet.

  • hvis indeks er et positivt tall, returnerer indeksdelen fra venstre i kildestrengen.
  • hvis indeks er et negativt tall, returnerer indeksdelen fra høyre i kildestrengen.
  • hvis indeksen er 0, returnerer en feil.

skilletegnet kan bestå av flere tegn, ikke bare et enkelt tegn.

All matching av avgrenseren gjøres nøyaktig, uten å bruke noen vanlige uttrykksmønstre.

Returtype: STRING

Eksempler:

SPLIT_PART('x,y,z',',',2) returnerer 'y'.

SPLIT_PART('one***two***three','***',2) returnerer 'two'.

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

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

STRLEFT(STRENG a, int num_chars) Formål: Returnerer tegnene lengst til venstre i strengen. Stenografi for a ringe tilsubstr()med 2 argumenter.

Returtype: STRING

STRRIGHT (STRENG a, int num_chars) Formål: Returnerer tegnene lengst til høyre i strengen. Stenografi for a ringe tilsubstr()med 2 argumenter.

Returtype: STRING

SUBSTR(STRENG a, INT start ), SUBSTRING (STRENG a, int start ) Formål: Returnerer delen av strengen som starter på et angitt punkt, eventuelt med en angitt maksimal lengde. Tegnene i strengen er indeksert fra 1.

Returtype: STRING

OVERSETT(STRENGINNGANG, STRENG FRA, STRENG TIL) Formål: Returnererinputstrengen med hvert tegn i argumentetfromerstattet med det tilsvarende tegnet i argumentetto. Tegnene matches i den rekkefølgen de vises ifromogto.

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

Returtype: STRING

Bruksmerknader:

hvis from inneholder flere tegn enn to, fjernes from – tegnene som er lengre enn to i resultatet.

for eksempel:

translate('abcdedg', 'bcd', '1') returnerer 'a1eg'.

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

hvis from er NULL, returnerer funksjonen NULL.

hvis to inneholder flere tegn enn from, ignoreres de ekstra tegnene i to.

hvis from inneholder dupliserte tegn, erstattes det dupliserte tegnet med det første samsvarende tegnet i to.

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

TRIM (STRENG a) Formål: Returnerer inngangsstrengen med både innledende og etterfølgende mellomrom fjernet. Det samme som å passere strengen gjennom bådeLTRIM()ogRTRIM().

bruksmerknader: Brukes Ofte under rensing av data i løpet av etl-syklusen, hvis inndataverdier fortsatt kan ha omkringliggende områder. For en mer generell funksjon som kan fjerne andre ledende og etterfølgende tegn i tillegg til mellomrom, se BTRIM().

Returtype: STRING

ØVRE(STRENG a), UCASE (STRENG a) Formål: Returnerer argumentstrengen konvertert til store bokstaver.

Returtype: STRING

Bruksmerknader:

I Impala 2.5 og nyere kan du forenkle spørringer som bruker mange UPPER() og LOWER() – anrop for å gjøre små og store sammenligninger, ved å bruke operatorene ILIKE eller IREGEXP i stedet.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.