Dela via


Strängfunktioner

I följande tabell visas funktioner för strängmanipulering. Ett program kan avgöra vilka strängfunktioner som stöds av en drivrutin genom att anropa SQLGetInfo- med en informationstyp av SQL_STRING_FUNCTIONS.

Anmärkningar

Argument som anges som string_exp kan vara namnet på en kolumn, en teckensträngsliteraleller resultatet av en annan skalär funktion, där den underliggande datatypen kan representeras som SQL_CHAR, SQL_VARCHAR eller SQL_LONGVARCHAR.

Argument som anges som character_exp är en teckensträng med variabel längd.

Argument som anges som starta, längdeller antal kan vara en numerisk-literal eller resultatet av en annan skalär funktion, där den underliggande datatypen kan representeras som SQL_TINYINT, SQL_SMALLINT eller SQL_INTEGER.

Strängfunktionerna som anges här är 1-baserade. Det första tecknet i strängen är alltså tecken 1.

Skalärfunktionerna BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, OCTET_LENGTH och POSITION har lagts till i ODBC 3.0 för att överensstämma med SQL-92.

Funktion Beskrivning
ASCII(string_exp) (ODBC 1.0) Returnerar ASCII-kodvärdet för det vänstra tecknet för string_exp som ett heltal.
BIT_LENGTH(string_exp) (ODBC 3.0) Returnerar längden i bitar av stränguttrycket.

Fungerar inte bara för strängdatatyper, därför konverteras inte implicit string_exp till sträng, utan returnerar i stället storleken (intern) för den datatyp den ges.
CHAR(kod) (ODBC 1.0) Returnerar det tecken som har ASCII-kodvärdet som anges av kod. Värdet för kod ska vara mellan 0 och 255. Annars är returvärdet datakällans beroende.
CHAR_LENGTH(string_exp) (ODBC 3.0) Returnerar längden i tecken i stränguttrycket, om stränguttrycket är av en teckendatatyp. annars returnerar längden i byte för stränguttrycket (det minsta heltalet inte mindre än antalet bitar dividerat med 8). (Den här funktionen är samma som funktionen CHARACTER_LENGTH.)
CHARACTER_LENGTH(string_exp) (ODBC 3.0) Returnerar längden i tecken i stränguttrycket, om stränguttrycket är av en teckendatatyp. annars returnerar längden i byte för stränguttrycket (det minsta heltalet inte mindre än antalet bitar dividerat med 8). (Den här funktionen är samma som funktionen CHAR_LENGTH.)
CONCAT(string_exp1,string_exp2) (ODBC 1.0) Returnerar en teckensträng som är resultatet av att sammanfoga string_exp2 till string_exp1. Den resulterande strängen är DBMS-beroende. Om kolumnen som representeras av string_exp1 innehåller ett NULL-värde skulle DB2 till exempel returnera NULL, men SQL Server skulle returnera strängen som inte är NULL.
DIFFERENCE(string_exp1,string_exp2) (ODBC 2.0) Returnerar ett heltalsvärde som anger skillnaden mellan de värden som returneras av funktionen SOUNDEX för string_exp1 och string_exp2.
INSERT(string_exp1, start, längd, string_exp2) (ODBC 1.0) Returnerar en teckensträng där längd tecken har tagits bort från string_exp1, med början start, och där string_exp2 har infogats i string_exp, från och med starta.
LCASE(string_exp) (ODBC 1.0) Returnerar en sträng som är lika med den i string_exp, med alla versaler konverterade till gemener.
LEFT(string_exp, count) (ODBC 1.0) Returnerar det vänstra antal tecken i string_exp.
LENGTH(string_exp) (ODBC 1.0) Returnerar antalet tecken i string_exp, exklusive avslutande blanksteg.

LENGTH accepterar endast strängar. Konverterar därför implicit string_exp till en sträng och returnerar längden på den här strängen (inte datatypens interna storlek).
LOCATE(string_exp1, string_exp2[, start]) (ODBC 1.0) Returnerar startpositionen för den första förekomsten av string_exp1 inom string_exp2. Sökningen efter den första förekomsten av string_exp1 börjar med den första teckenpositionen i string_exp2 om inte det valfria argumentet startaanges. Om starta anges börjar sökningen med teckenpositionen som anges av värdet för starta. Den första teckenpositionen i string_exp2 anges med värdet 1. Om string_exp1 inte hittas inom string_exp2returneras värdet 0.

Om ett program kan anropa funktionen LOCATE scalar med string_exp1, string_exp2och starta argument, returnerar drivrutinen SQL_FN_STR_LOCATE när SQLGetInfo- anropas med ett Alternativ av SQL_STRING_FUNCTIONS. Om programmet bara kan anropa funktionen LOCATE scalar med argumenten string_exp1 och string_exp2 returnerar drivrutinen SQL_FN_STR_LOCATE_2 när SQLGetInfo- anropas med ett Alternativ av SQL_STRING_FUNCTIONS. Drivrutiner som stöder anrop av funktionen LOCATE med antingen två eller tre argument returnerar både SQL_FN_STR_LOCATE och SQL_FN_STR_LOCATE_2.
LTRIM(string_exp) (ODBC 1.0) Returnerar tecknen i string_exp, med inledande blanksteg borttagna.
OCTET_LENGTH(string_exp) (ODBC 3.0) Returnerar längden i byte för stränguttrycket. Resultatet är det minsta heltalet, inte mindre än antalet bitar dividerat med 8.

Fungerar inte bara för strängdatatyper, därför konverteras inte implicit string_exp till sträng, utan returnerar i stället storleken (intern) för den datatyp den ges.
POSITION(character_expINcharacter_exp) (ODBC 3.0) Returnerar positionen för det första teckenuttrycket i det andra teckenuttrycket. Resultatet är ett exakt numeriskt värde med en implementeringsdefinierad precision och en skala på 0.
REPEAT(string_exp,count) (ODBC 1.0) Returnerar en teckensträng som består av string_exp upprepad antal gånger.
REPLACE(string_exp1, string_exp2, string_exp3) (ODBC 1.0) Sök string_exp1 efter förekomster av string_exp2och ersätt med string_exp3.
RIGHT(string_exp, count) (ODBC 1.0) Returnerar det högra antal tecken i string_exp.
RTRIM(string_exp) (ODBC 1.0) Returnerar tecknen i string_exp med avslutande tomma värden borttagna.
SOUNDEX(string_exp) (ODBC 2.0) Returnerar en datakällaberoende teckensträng som representerar ljudet av orden i string_exp. SQL Server returnerar till exempel en fyrsiffrig SOUNDEX-kod. Oracle returnerar en fonetikrepresentation av varje ord.
SPACE(count) (ODBC 2.0) Returnerar en teckensträng som består av antal blanksteg.
SUBSTRING(string_exp, start, length**)** (ODBC 1.0) Returnerar en teckensträng som härleds från string_exp, med början vid teckenpositionen som anges av starta för längd tecken.
UCASE(string_exp) (ODBC 1.0) Returnerar en sträng som är lika med den i string_exp, med alla gemener konverterade till versaler.