Condividi tramite


Funzioni di stringa

Nella tabella seguente sono elencate le funzioni di manipolazione delle stringhe. Un'applicazione può determinare quali funzioni stringa sono supportate da un driver chiamando SQLGetInfo con un tipo di informazioni di SQL_STRING_FUNCTIONS.

Osservazioni:

Gli argomenti contrassegnati come string_exp possono essere il nome di una colonna, un valore letterale stringa di caratteri o il risultato di un'altra funzione scalare, in cui il tipo di dati sottostante può essere rappresentato come SQL_CHAR, SQL_VARCHAR o SQL_LONGVARCHAR.

Gli argomenti indicati come character_exp sono una stringa di caratteri a lunghezza variabile.

Gli argomenti indicati come inizio, lunghezza o conteggio possono essere un valore letterale numerico o il risultato di un'altra funzione scalare, in cui il tipo di dati sottostante può essere rappresentato come SQL_TINYINT, SQL_SMALLINT o SQL_INTEGER.

Le funzioni stringa elencate di seguito sono basate su 1; ovvero il primo carattere nella stringa è carattere 1.

Le funzioni scalari di stringa BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, OCTET_LENGTH e POSITION sono state aggiunte in ODBC 3.0 per allinearsi a SQL-92.

Funzione Descrizione
ASCII(string_exp) (ODBC 1.0) Restituisce il valore del codice ASCII del carattere più a sinistra di string_exp come numero intero.
BIT_LENGTH(string_exp) (ODBC 3.0) Restituisce la lunghezza in bit dell'espressione stringa.

Non funziona solo per i tipi di dati stringa, pertanto non convertirà in modo implicito string_exp in stringa, ma restituirà invece la dimensione (interna) del tipo di dati specificato.
CHAR(code) (ODBC 1.0) Restituisce il carattere con il valore del codice ASCII specificato dal codice. Il valore del codice deve essere compreso tra 0 e 255. In caso contrario, il valore restituito è dipendente dall'origine dati.
CHAR_LENGTH(string_exp) (ODBC 3.0) Restituisce la lunghezza in caratteri dell'espressione stringa, se l'espressione stringa è di un tipo di dati carattere; in caso contrario, restituisce la lunghezza in byte dell'espressione stringa (l'intero più piccolo non minore del numero di bit diviso per 8). Questa funzione è la stessa della funzione CHARACTER_LENGTH.
CHARACTER_LENGTH(string_exp) (ODBC 3.0) Restituisce la lunghezza in caratteri dell'espressione stringa, se l'espressione stringa è di un tipo di dati carattere; in caso contrario, restituisce la lunghezza in byte dell'espressione stringa (l'intero più piccolo non minore del numero di bit diviso per 8). Questa funzione è la stessa della funzione CHAR_LENGTH.
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Restituisce una stringa di caratteri risultante dalla concatenazione di string_exp2 a string_exp1. La stringa risultante dipende da DBMS. Ad esempio, se la colonna rappresentata da string_exp1 conteneva un valore NULL, DB2 restituirà NULL, ma SQL Server restituirà la stringa non NULL.
DIFFERENCE( string_exp1,string_exp2) (ODBC 2.0) Restituisce un valore intero che indica la differenza tra i valori restituiti dalla funzione SOUNDEX per string_exp1 e string_exp2.
INSERT(string_exp1, start, length, string_exp2) (ODBC 1.0) Restituisce una stringa di caratteri in cui i caratteri di lunghezza sono stati eliminati da string_exp1, a partire dall'inizio e dove string_exp2 è stato inserito in string_exp, a partire dall'inizio.
LCASE(string_exp) (ODBC 1.0) Restituisce una stringa uguale a quella in string_exp, con tutti i caratteri maiuscoli convertiti in lettere minuscole.
LEFT(string_exp, count) (ODBC 1.0) Restituisce i caratteri di conteggio più a sinistra di string_exp.
LENGTH(string_exp) (ODBC 1.0) Restituisce il numero di caratteri in string_exp, esclusi gli spazi vuoti finali.

LENGTH accetta solo stringhe. Pertanto, converte in modo implicito string_exp in una stringa e restituisce la lunghezza di questa stringa (non la dimensione interna del tipo di dati).
LOCATE(string_exp1, string_exp2[, start]) (ODBC 1.0) Restituisce la posizione iniziale della prima occorrenza di string_exp1 all'interno di string_exp2. La ricerca della prima occorrenza di string_exp1 inizia con la prima posizione del carattere in string_exp2 a meno che non venga specificato l'argomento facoltativo start. Se si specifica start , la ricerca inizia con la posizione del carattere indicata dal valore di inizio. La prima posizione del carattere in string_exp2 è indicata dal valore 1. Se string_exp1 non viene trovato all'interno di string_exp2, viene restituito il valore 0.

Se un'applicazione può chiamare la funzione scalare LOCATE con gli argomenti string_exp1, string_exp2 e start, il driver restituisce SQL_FN_STR_LOCATE quando SQLGetInfo viene chiamato con un'opzione di SQL_STRING_FUNCTIONS. Se l'applicazione può chiamare la funzione scalare LOCATE solo con gli argomenti string_exp1 e string_exp2, il driver restituisce SQL_FN_STR_LOCATE_2 quando SQLGetInfo viene chiamato con un'opzione di SQL_STRING_FUNCTIONS. I driver che supportano la chiamata alla funzione LOCATE con due o tre argomenti restituiscono sia SQL_FN_STR_LOCATE che SQL_FN_STR_LOCATE_2.
LTRIM(string_exp) (ODBC 1.0) Restituisce i caratteri di string_exp, con spazi vuoti iniziali rimossi.
OCTET_LENGTH(string_exp) (ODBC 3.0) Restituisce la lunghezza in byte dell'espressione stringa. Il risultato è il più piccolo numero integer non inferiore al numero di bit diviso per 8.

Non funziona solo per i tipi di dati stringa, pertanto non convertirà in modo implicito string_exp in stringa, ma restituirà invece la dimensione (interna) del tipo di dati specificato.
POSITION(character_exp IN character_exp) (ODBC 3.0) Restituisce la posizione della prima espressione di caratteri nella seconda espressione di caratteri. Il risultato è un valore numerico esatto con una precisione definita dall'implementazione e una scala pari a 0.
REPEAT(string_exp,count) (ODBC 1.0) Restituisce una stringa di caratteri composta da string_exp numero di volte ripetute.
REPLACE(string_exp1, string_exp2, string_exp3) (ODBC 1.0) Cercare string_exp1 occorrenze di string_exp2e sostituire con string_exp3.
RIGHT(string_exp, count) (ODBC 1.0) Restituisce i caratteri di conteggio più a destra di string_exp.
RTRIM(string_exp) (ODBC 1.0) Restituisce i caratteri di string_exp con spazi vuoti finali rimossi.
SOUNDEX(string_exp) (ODBC 2.0) Restituisce una stringa di caratteri dipendente dall'origine dati che rappresenta il suono delle parole in string_exp. Ad esempio, SQL Server restituisce un codice SOUNDEX a 4 cifre; Oracle restituisce una rappresentazione fonetica di ogni parola.
SPACE(count) (ODBC 2.0) Restituisce una stringa di caratteri costituita da spazi di conteggio .
SUBSTRING(string_exp, start, length**)** (ODBC 1.0) Restituisce una stringa di caratteri derivata da string_exp, a partire dalla posizione del carattere specificata dall'inizioper i caratteri di lunghezza.
UCASE(string_exp) (ODBC 1.0) Restituisce una stringa uguale a quella in string_exp, con tutti i caratteri minuscoli convertiti in lettere maiuscole.