IVF

Chasing Dreams

Impala strängfunktioner

  • alla funktioner som accepterar STRING – argumenten accepterar också typerna VARCHAR och CHAR som introducerades i Impala 2.0.
  • när VARCHAR eller CHAR värden skickas till en funktion som returnerar ett strängvärde normaliseras returtypen till STRING. Till exempel ger ett anrop till concat() med en blandning av STRING, VARCHAR och CHAR argument ett STRING resultat.

funktion referens:

Impala stöder följande strängfunktioner:

  • ASCII
  • BASE64DECODE
  • BASE64ENCODE
  • BTRIM
  • CHAR_LENGTH
  • CHR
  • CONCAT
  • CONCAT_WS
  • FIND_IN_SET
  • GROUP_CONCAT
  • INITCAP
  • INSTR
  • JARO_DISTANCE, JARO_DIST
  • JARO_SIMILARITY, JARO_SIM
  • JARO_WINKER_DISTANCE, JW_DST
  • JARO_WINKER_SIMILARITY, JW_SIM
  • VÄNSTER
  • LÄNGD
  • LEVENSHTEIN, LE_DST
  • LETA UPP
  • LÄGRE, LCASE
  • LPAD
  • LTRI
  • PARSE_URL
  • REGEXP_ESCAPE
  • REGEXP_EXTRACT
  • REGEXP_LIKE
  • REGEXP_REPLACE
  • upprepa
  • ersätt
  • omvänd
  • höger
  • RPAD
  • RTRIM
  • utrymme
  • SPLIT_PART
  • STRLEFT
  • STRRIGHT
  • SUBSTR, substring
  • översätt
  • trim
  • övre, ucase

ASCII(string str) syfte: returnerar den numeriska ASCII-koden för argumentets första tecken.

returtyp: INT

BASE64DECODE (str) syfte:

returtyp: STRING

användningsanvisningar:

funktionerna BASE64ENCODE() och BASE64DECODE() används vanligtvis i kombination för att lagra i en Impala-tabellsträngdata som är problematisk att lagra eller överföra. Du kan till exempel använda dessa funktioner för att lagra strängdata som använder en annan kodning än UTF-8, eller för att omvandla värdena i sammanhang som kräver ASCII-värden, till exempel för kolumner med partitionstangenter. Tänk på att base64-kodade värden ger olika resultat för strängfunktioner som LENGTH(), MAX() och MIN() än när dessa funktioner anropas med de okodade strängvärdena.

alla returvärden som produceras av BASE64ENCODE() är en multipel av 4 byte i längd. Alla argumentvärden som levereras till BASE64DECODE() måste också vara en multipel av 4 byte i längd. Om ett base64-kodat värde annars skulle ha en annan längd kan det vadderas med efterföljande = tecken för att nå en längd som är en multipel av 4 byte.

om argumentsträngen till BASE64DECODE() inte representerar ett giltigt base64-kodat värde, med förbehåll för Impala-implementeringens begränsningar, såsom den tillåtna teckenuppsättningen, returnerar funktionen NULL.

exempel:

BASE64ENCODE (sträng str) syfte:

returtyp: STRING

användningsanvisningar:

funktionerna BASE64ENCODE() och BASE64DECODE() används vanligtvis i kombination för att lagra i en Impala-tabellsträngdata som är problematisk att lagra eller överföra. Du kan till exempel använda dessa funktioner för att lagra strängdata som använder en annan kodning än UTF-8, eller för att omvandla värdena i sammanhang som kräver ASCII-värden, till exempel för kolumner med partitionstangenter. Tänk på att base64-kodade värden ger olika resultat för strängfunktioner som LENGTH(), MAX() och MIN() än när dessa funktioner anropas med de okodade strängvärdena.

alla returvärden som produceras av BASE64ENCODE() är en multipel av 4 byte i längd. Alla argumentvärden som levereras till BASE64DECODE() måste också vara en multipel av 4 byte i längd. Om ett base64-kodat värde annars skulle ha en annan längd kan det vadderas med efterföljande = tecken för att nå en längd som är en multipel av 4 byte.

exempel:

BTRIM(STRING a), BTRIM(STRING a, STRING chars_to_trim) syfte: tar bort alla instanser av ett eller flera tecken från början och slutet av ettSTRING– värde. Som standard tar du bara bort mellanslag. Om ett icke –NULLvalfritt andra argument anges, tar funktionen bort alla förekomster av tecken i det andra argumentet från början och slutet av strängen.

returtyp: STRING

exempel:

följande exempel visar standardbeteendet btrim() och vad som ändras när du anger det valfria andra argumentet. Alla exempel hakparenterar utgångsvärdet med så att du kan se några inledande eller efterföljande mellanslag i resultatet btrim(). Som standard tar funktionen bort och antalet både inledande och avslutande mellanslag. När det andra argumentet anges tas valfritt antal förekomster av alla tecken i det andra argumentet bort från början och slutet av inmatningssträngen; i det här fallet tas inte mellanslag bort (såvida de inte ingår i det andra argumentet) och eventuella instanser av tecknen tas inte bort om de inte kommer precis i början eller slutet av strängen.

CHAR_LENGTH(sträng a), CHARACTER_LENGTH(sträng a) syfte: returnerar längden i tecken i argumentsträngen. Alias för funktionenlength().

returtyp: INT

CHR(int character_code) syfte: returnerar ett tecken som anges med ett decimalkodpunktvärde. Tolkningen och visningen av det resulterande tecknet beror på din systemlokal. Eftersom konsekvent bearbetning av Impala-strängvärden endast garanteras för värden inom ASCII-intervallet, använd endast denna funktion för värden som motsvarar ASCII-tecken. I synnerhet returnerar parametervärden större än 255 en tom sträng.

returtyp: STRING

Användningsanmärkningar: kan användas som invers av funktionen ascii(), som konverterar ett tecken till sin numeriska ASCII-kod.

exempel:

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

CONCAT(sträng a, sträng b…) Syfte: returnerar en enda sträng som representerar alla argumentvärden sammanfogade.

om något argument är NULL returnerar funktionen NULL.

returtyp: STRING

Användningsanmärkningar: concat() och concat_ws() är lämpliga för att sammanfoga värdena för flera kolumner inom samma rad, medan group_concat() sammanfogar värden från olika rader.

CONCAT_WS (sträng sep, sträng a, sträng b…) Syfte: returnerar en enda sträng som representerar de andra och följande argumentvärdena sammanfogade, avgränsade av en angiven separator.

om något argument är NULL returnerar funktionen NULL.

returtyp: STRING

användningsanvisningar: concat() och concat_ws() är lämpliga för att sammanfoga värdena för flera kolumner inom samma rad, medan group_concat() sammanfogar värden från olika rader.

FIND_IN_SET(STRING str, STRING strList) syfte: returnerar positionen (med början från 1) för den första förekomsten av en angiven sträng inom en kommaseparerad sträng. ReturnerarNULLom något av argumenten ärNULL, 0 om söksträngen inte hittas eller 0 om söksträngen innehåller ett kommatecken.

returtyp: INT

GROUP_CONCAT (sträng s ) syfte: Returnerar en enda sträng som representerar argumentvärdet sammanfogat för varje rad i resultatuppsättningen. Om den valfria separatorsträngen anges läggs separatorn mellan varje par sammanlänkade värden.

returtyp: STRING

Användningsanmärkningar: concat() och concat_ws() är lämpliga för att sammanfoga värdena för flera kolumner inom samma rad, medan group_concat() sammanfogar värden från olika rader.

returnerar som standard en enda sträng som täcker hela resultatuppsättningen. Om du vill inkludera andra kolumner eller värden i resultatuppsättningen eller skapa flera sammanlänkade strängar för delmängder av rader, ska du inkludera en GROUP BY – sats i frågan.

strängt taget är group_concat() en aggregerad funktion, inte en skalär funktion som de andra i den här listan. För ytterligare detaljer och exempel, se funktionen GROUP_CONCAT.

Initcap(STRING str) syfte: returnerar inmatningssträngen med den första bokstaven i varje ord med stora bokstäver och alla andra bokstäver med små bokstäver.

returtyp: STRING

exempel:

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

INSTR(STRING str, STRING substr ]) syfte: returnerar positionen (med början från 1) för den första förekomsten av en delsträng inom en längre sträng.

returtyp: INT

användningsanvisningar:

om substr inte finns i str returnerar funktionen 0.

de valfria tredje och fjärde argumenten låter dig hitta instanser av substr annat än den första instansen från vänster.

JARO_DISTANCE(STRING str1, STRING str2) JARO_DST(STRING str1, STRING str2) syfte: returnerar Jaro-avståndet mellan två ingångssträngar. Jaro-avståndet är ett mått på likhet mellan två strängar och är komplementet till

JARO_SIMILARITY(), dvs (1 –JARO_SIMILARITY()).

returtyp: DOUBLE

Användningsanmärkningar:

om de två ingångssträngarna är identiska returnerar funktionen 0,0.

om det inte finns något matchande tecken mellan inmatningssträngarna returnerar funktionen 1.0.

om någon av inmatningssträngarna är NULL returnerar funktionen NULL.

om längden på endera inmatningssträngen är större än 255 tecken returnerar funktionen Ett fel.

JARO_SIMILARITY(STRING str1, STRING str2) JARO_SIM(STRING str1, STRING str2) syfte: returnerar Jaro likheten mellan två strängar. Ju högre Jaro-likheten för två strängar är, desto mer liknar strängarna.

returtyp: DOUBLE

Användningsanmärkningar:

om de två inmatningssträngarna är identiska returnerar funktionen 1.0.

om det inte finns något matchande tecken mellan inmatningssträngarna returnerar funktionen 0,0.

om någon av inmatningssträngarna är NULL returnerar funktionen NULL.

om längden på endera inmatningssträngen är större än 255 tecken returnerar funktionen Ett fel.

JARO_WINKLER_DISTANCE(STRING str1, STRING str2) JW_DST(STRING str1, STRING str2) syfte: returnerar Jaro-Winkler-avståndet för två ingångssträngar. Det är komplementet tillJARO_WINKLER_SIMILARITY(), dvs 1 –JARO_WINKLER_SIMILARITY().

returtyp: DOUBLE

Användningsanmärkningar:

om de två ingångssträngarna är identiska returnerar funktionen 0,0.

om det inte finns något matchande tecken mellan inmatningssträngarna returnerar funktionen 1.0.

funktionen returnerar ett fel i följande fall:

  • längden på endera inmatningssträngen är större än 255 tecken.
  • scaling_factor < 0.0 eller scaling_factor > 0.25
  • boost_threshold < 0.0 eller boost_threshold > 1.0

om någon av inmatningssträngarna är NULL returnerar funktionen NULL.

standardskalningsfaktorn är 0,1.

prefixvikten kommer endast att tillämpas om Jaro-avståndet överstiger det valfria boost_threshold. Som standard är boost_threshold-värdet 0,7.

JARO_WINKLER_SIMILARITY(STRING str1, STRING str2) JARO_SIM(STRING str1, STRING str2) syfte: returnerar Jaro-Winkler likheten mellan två inmatningssträngar. Jaro-Winkler-likheten använder en prefixvikt, specificerad av skalningsfaktor, vilket ger mer gynnsamma betyg till strängar som matchar från början för en uppsättning prefixlängd, upp till högst fyra tecken.

använd Jaro-eller Jaro-Winkler-funktioner för att utföra fuzzy matchningar på relativt korta strängar, t.ex. för att skrubba användarinmatningar av namn mot posterna i databasen.

returtyp: DOUBLE

användningsanvisningar:

om de två inmatningssträngarna är identiska returnerar funktionen 1.0.

om det inte finns något matchande tecken mellan inmatningssträngarna returnerar funktionen 0,0.

funktionen returnerar ett fel i följande fall:

  • längden på endera inmatningssträngen är större än 255 tecken.
  • scaling_factor < 0.0 eller scaling_factor > 0.25
  • boost_threshold < 0.0 eller boost_threshold > 1.0

om någon av inmatningssträngarna är NULL returnerar funktionen NULL.

standardskalningsfaktorn är 0,1.

prefixvikten kommer endast att tillämpas om Jaro-likheten överstiger det valfria boost_threshold. Som standard är boost_threshold-värdet 0,7.

vänster (sträng A, int num_chars) se funktionenSTRLEFT(). Längd (sträng a) syfte: returnerar längden i tecken i argumentsträngen.

returtyp: INT

LEVENSHTEIN(STRING str1, STRING str2), LE_DST(STRING str1, STRING str2) syfte: returnerar Levenshtein-avståndet mellan två ingångssträngar. Levenshtein-avståndet mellan två strängar är det minsta antalet redigeringar med en tecken som krävs för att omvandla en sträng till en annan. Funktionen anger hur olika ingångssträngarna är.

returtyp: INT

användningsanvisningar:

om inmatningssträngar är lika returnerar funktionen 0.

om någon av inmatningarna överstiger 255 tecken returnerar funktionen Ett fel.

om någon av inmatningssträngarna är NULL returnerar funktionen NULL.

om längden på en ingångssträng är noll returnerar funktionen längden på den andra strängen.

exempel:

LEVENSHTEIN ('welcome', 'We come') returnerar 2, först ändra för att ersätta ’w’ till ’W’ och sedan ersätta ’ l’ till ett mellanslag.

LOCATE(STRING substr, STRING str) syfte: returnerar positionen (med början från 1) för den första förekomsten av en substring inom en längre sträng, valfritt efter en viss position.

returtyp: INT

lägre(sträng a), LCASE(sträng a) syfte: returnerar argumentsträngen konverterad till gemener.

returtyp: STRING

användningsanvisningar:

i Impala 2.5 och senare kan du förenkla frågor som använder många UPPER() och LOWER()-samtal för att göra skiftlägeskänsliga jämförelser genom att använda operatörerna ILIKE eller IREGEXP istället.

LpAd(STRING str, int len, STRING pad) syfte: returnerar en sträng med en angiven längd, baserat på den första argumentsträngen. Om den angivna strängen är för kort, är den vadderad till vänster med en upprepande sekvens av tecknen från padsträngen. Om den angivna strängen är för lång, trunkeras den till höger.

returtyp: STRING

LTRIM (sträng a ) syfte: Returnerar argumentsträngen med alla förekomster av tecken som anges av det andra argumentet bort från vänster sida. Tar bort mellanslag om det andra argumentet inte anges.

returtyp: STRING

PARSE_URL(STRING urlString, STRING partToExtract ) syfte: Returnerar den del av en URL som motsvarar en angiven del. Delargumentet kan vara'PROTOCOL','HOST','PATH','REF','AUTHORITY','FILE','USERINFO', eller'QUERY'. Stora bokstäver krävs för dessa bokstavliga värden. När du begärQUERY– delen av webbadressen kan du valfritt ange en nyckel för att hämta bara det associerade värdet från nyckelvärdesparen i frågesträngen.

returtyp: STRING

användningsanvisningar: denna funktion är viktig för det traditionella Hadoop-användningsfallet för att tolka webbloggar. Om webbtrafikdata till exempel innehåller obehandlade webbadresser som inte är uppdelade i separata tabellkolumner kan du räkna besökare till en viss sida genom att extrahera fältet 'PATH' eller 'FILE' eller analysera söktermer genom att extrahera motsvarande nyckel från fältet 'QUERY'.

REGEXP_ESCAPE(STRING source) syfte: funktionenREGEXP_ESCAPEreturnerar en sträng som flydde för specialtecknet i RE2-biblioteket så att specialtecknen tolkas bokstavligt snarare än som specialtecken. Funktionen undgår följande specialtecken:

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

returtyp: string

i Impala 2.0 och senare överensstämmer Impala reguljära uttryckssyntax med POSIX Extended reguljära Uttryckssyntax som används av Google RE2-biblioteket. För mer information, se dokumentationen RE2. Det har de flesta idiom som är bekanta med reguljära uttryck i Perl, Python och så vidare, inklusive .*? för icke-giriga matcher.

i Impala 2.0 och senare kan en förändring i det underliggande reguljära uttrycksbiblioteket orsaka förändringar i hur reguljära uttryck tolkas av denna funktion. Testa alla frågor som använder reguljära uttryck och justera uttrycksmönstren om det behövs.

eftersom impala-Shell-tolken använder tecknet \ för att fly, använd \ för att representera det reguljära uttrycket escape-tecknet i alla reguljära uttryck som du skickar via impala-shell . Du kanske föredrar att använda motsvarande teckenklassnamn, till exempel ] istället för \dsom du skulle behöva fly som \d.

exempel:

det här exemplet visar att ett av specialtecken i RE2 försvinner.

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

det här exemplet visar att alla specialtecken i RE2 försvinner.

+------------------------------------------------------------+| 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(STRING subject, STRING pattern, INT index) syfte: Returnerar den angivna () gruppen från en sträng baserat på ett reguljärt uttrycksmönster. Grupp 0 avser hela den extraherade strängen, medan Grupp 1, 2 och så vidare avser den första, andra och så vidare(...)delen.

returtyp: STRING

i Impala 2.0 och senare överensstämmer Impala reguljära uttryckssyntax med POSIX Extended reguljära Uttryckssyntax som används av Google RE2-biblioteket. För mer information, se dokumentationen RE2. Det har de flesta idiom som är bekanta med reguljära uttryck i Perl, Python och så vidare, inklusive .*? för icke-giriga matcher.

i Impala 2.0 och senare kan en förändring i det underliggande reguljära uttrycksbiblioteket orsaka förändringar i hur reguljära uttryck tolkas av denna funktion. Testa alla frågor som använder reguljära uttryck och justera uttrycksmönstren om det behövs.

eftersom impala-Shell-tolken använder tecknet \ för att fly, använd \ för att representera det reguljära uttrycket escape-tecknet i alla reguljära uttryck som du skickar via impala-shell . Du kanske föredrar att använda motsvarande teckenklassnamn, till exempel ] istället för \dsom du skulle behöva fly som \d.

exempel:

detta exempel visar hur grupp 0 matchar hela mönstersträngen, inklusive delen utanför någon () grupp:

detta exempel visar hur Grupp 1 matchar bara innehållet i den första ()-gruppen i mönstersträngen:

till skillnad från tidigare Impala-utgåvor, stöder det reguljära uttrycksbiblioteket som används i Impala 2.0 och senare .*? idiom för icke-giriga matchningar. Det här exemplet visar hur en mönstersträng som börjar med .*? matchar den kortaste möjliga delen av källsträngen och returnerar den högsta uppsättningen små bokstäver. En mönstersträng som både börjar och slutar med .*? hittar två potentiella matchningar med samma längd och returnerar den första som hittades (den vänstra uppsättningen med små bokstäver).

REGEXP_LIKE(STRÄNGKÄLLA, Strängmönster) syfte: returnerartrueellerfalseför att ange om källsträngen innehåller någonstans inuti det reguljära uttrycket som ges av mönstret. Det valfria tredje argumentet består av brevflaggor som ändrar hur matchen utförs, till exempeliför skiftlägeskänslig matchning.

Syntax:

flaggorna som du kan inkludera i det valfria tredje argumentet är:

  • c: skiftlägeskänslig matchning (standard).
  • i: skiftlägeskänslig matchning. Om flera instanser av c och i ingår i det tredje argumentet, har det sista alternativet företräde.
  • m: multi-line matchning. Operatorerna ^ och $ matchar början eller slutet på en rad i källsträngen, inte början och slutet på hela strängen.
  • n: newline matchning. Operatören . kan matcha nyradens tecken. En repetitionsoperator som .* kan matcha en del av källsträngen som sträcker sig över flera rader.

returtyp: BOOLEAN

i Impala 2.0 och senare överensstämmer Impala reguljära uttryckssyntax med POSIX Extended reguljära Uttryckssyntax som används av Google RE2-biblioteket. För mer information, se dokumentationen RE2. Det har de flesta idiom som är bekanta med reguljära uttryck i Perl, Python och så vidare, inklusive .*? för icke-giriga matcher.

I Impala 2.0 och senare kan en ändring i det underliggande reguljära uttrycksbiblioteket orsaka förändringar i hur reguljära uttryck tolkas av den här funktionen. Testa alla frågor som använder reguljära uttryck och justera uttrycksmönstren om det behövs.

eftersom impala-Shell-tolken använder tecknet \ för att fly, använd \ för att representera det reguljära uttrycket escape-tecknet i alla reguljära uttryck som du skickar via impala-shell . Du kanske föredrar att använda motsvarande teckenklassnamn, till exempel ] istället för \dsom du skulle behöva fly som \d.

exempel:

detta exempel visar hur REGEXP_LIKE() kan testa för förekomsten av olika typer av reguljära uttrycksmönster inom en källsträng:

REGEXP_REPLACE(sträng initial, Strängmönster, STRÄNGBYTE) syfte: Returnerar det ursprungliga argumentet med det reguljära uttrycksmönstret ersatt av den slutliga argumentsträngen.

returtyp: STRING

i Impala 2.0 och senare överensstämmer Impala reguljära uttryckssyntax med POSIX Extended reguljära Uttryckssyntax som används av Google RE2-biblioteket. För mer information, se dokumentationen RE2. Det har de flesta idiom som är bekanta med reguljära uttryck i Perl, Python och så vidare, inklusive .*? för icke-giriga matcher.

i Impala 2.0 och senare kan en förändring i det underliggande reguljära uttrycksbiblioteket orsaka förändringar i hur reguljära uttryck tolkas av denna funktion. Testa alla frågor som använder reguljära uttryck och justera uttrycksmönstren om det behövs.

eftersom impala-Shell-tolken använder tecknet \ för att fly, använd \ för att representera det reguljära uttrycket escape-tecknet i alla reguljära uttryck som du skickar via impala-shell . Du kanske föredrar att använda motsvarande teckenklassnamn, till exempel ] istället för \dsom du skulle behöva fly som \d.

exempel:

dessa exempel visar hur du kan ersätta delar av en sträng som matchar ett mönster med ersättningstext, vilket kan inkludera bakåtreferenser till alla () – grupper i mönstersträngen. Backreferensnumren börjar vid 1 och alla \ – tecken måste rymmas som \.

ersätt ett teckenmönster med ny text:

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

ersätt ett teckenmönster med substitutionstext som innehåller den ursprungliga matchande texten:

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

ta bort alla tecken som inte är siffror:

REPEAT(STRING str, INT n) syfte: returnerar argumentsträngen upprepad ett visst antal gånger.

returtyp: STRING

ersätt (sträng initial, STRÄNGMÅL, STRÄNGBYTE) syfte: Returnerar det ursprungliga argumentet med alla förekomster av målsträngen ersatt av ersättningssträngen.

returtyp: STRING

användningsanvisningar:

eftersom den här funktionen inte använder några reguljära uttrycksmönster är den vanligtvis snabbare än REGEXP_REPLACE() för enkla strängbyten.

om något argument är NULL är returvärdet NULL.

matchning är skiftlägeskänslig.

om ersättningssträngen innehåller en annan instans av målsträngen utförs expansionen bara en gång istället för att applicera igen på den nybyggda strängen.

exempel:

omvänd(sträng a) syfte: returnerar argumentsträngen med tecken i omvänd ordning.

returtyp: STRING

höger(sträng A, int num_chars) se funktionenSTRRIGHT. Rpad (STRING str, int len, STRING pad) syfte: returnerar en sträng med en angiven längd, baserat på den första argumentsträngen. Om den angivna strängen är för kort, är den vadderad till höger med en upprepande sekvens av tecknen från padsträngen. Om den angivna strängen är för lång, trunkeras den till höger.

returtyp: STRING

Rtrim(sträng a ) syfte: returnerar argumentsträngen med alla förekomster av tecken som anges av det andra argumentet borttagna från höger sida. Tar bort mellanslag om det andra argumentet inte anges.

returtyp: STRING

mellanslag(int n) syfte: returnerar en sammanfogad sträng av det angivna antalet mellanslag. Stenografi förrepeat(' ',n).

returtyp: STRING

SPLIT_PART(STRING source, STRING delimiter, BIGINT index) syfte: Returnerar den begärdaindexdelen av ingångskällan som delas av avgränsaren.

  • om index är ett positivt tal, returnerar indexth-delen från vänster i källsträngen.
  • om index är ett negativt tal, returnerar indexth delen från höger inom källsträngen.
  • om index är 0, returnerar ett fel.

avgränsaren kan bestå av flera tecken, inte bara ett enda tecken.

all matchning av avgränsaren görs exakt, utan att använda några reguljära uttrycksmönster.

returtyp: STRING

exempel:

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

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

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

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

STRLEFT(sträng A, int num_chars) syfte: returnerar strängens vänstra tecken. Stenografi för ett samtal tillsubstr()med 2 argument.

returtyp: STRING

sträng(sträng A, int num_chars) syfte: returnerar strängens högsta tecken. Stenografi för ett samtal tillsubstr()med 2 argument.

returtyp: STRING

SUBSTR(sträng A, int start ), SUBSTRING(sträng A, int start ) syfte: Returnerar den del av strängen som börjar vid en viss punkt, valfritt med en angiven maximal längd. Tecknen i strängen indexeras med början vid 1.

returtyp: STRING

översätt(STRÄNGINGÅNG, sträng från, sträng till) syfte: returnerar strängeninputmed varje tecken i argumentetfromersatt med motsvarande tecken i argumentetto. Tecknen matchas i den ordning de visas ifromochto.

till exempel: translate ('hello world','world','earth') returnerar 'hetta earth'.

returtyp: STRING

användningsanmärkningar:

Om from innehåller fler tecken än to, tas from – tecknen som är längre än to bort i resultatet.

till exempel:

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

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

Om from är NULL returnerar funktionen NULL.

om to innehåller fler tecken än from ignoreras de extra tecknen i to.

Om from innehåller dubbla tecken ersätts dubbletttecknet med det första matchande tecknet i to.

till exempel: translate ('hello','ll','67') returnerar 'he66o'.

TRIM(sträng a) syfte: returnerar inmatningssträngen med både inledande och avslutande mellanslag borttagna. Samma som att passera strängen genom bådeLTRIM()ochRTRIM().

användningsanvisningar: används ofta under datarengöringsoperationer under ETL-cykeln, om ingångsvärden fortfarande kan ha omgivande utrymmen. För en mer generell funktion som kan ta bort andra inledande och avslutande tecken förutom mellanslag, se BTRIM().

returtyp: STRING

övre(sträng a), UCASE(sträng a) syfte: returnerar argumentsträngen konverterad till versaler.

returtyp: STRING

Användningsanmärkningar:

i Impala 2.5 och senare kan du förenkla frågor som använder många UPPER() och LOWER()-samtal för att göra skiftlägeskänsliga jämförelser genom att använda operatörerna ILIKE eller IREGEXP istället.

Lämna ett svar

Din e-postadress kommer inte publiceras.