Funzione POSITION

POSITION è una funzione di manipolazione della stringa che manipola tutti i tipi di dati (BIT, BLOB e CHARACTER) e restituisce la posizione di una stringa all'interno di un'altra.

SINTASSI

POSITION restituisce un valore integer che fornisce la posizione di una stringa (SearchExpression) in una seconda stringa (SourceExpression). La posizione uno corrisponde al primo carattere della stringa di origine.

Se presente, la clausola FROM fornisce una posizione all'interno della stringa di ricerca in cui inizia la ricerca. In assenza della clausola FROM, la ricerca nella stringa di origine viene eseguita dall'inizio.

Se presente, la clausola REPEAT fornisce un conteggio delle ripetizioni, restituendo la posizione della ennesima ricorrenza della stringa di ricerca all'interno della stringa di origine. Se il conteggio delle ripetizioni è negativo, la ricerca nella stringa di origine viene eseguita a partire dalla fine.

In assenza della clausola REPEAT, si suppone che il conteggio delle ripetizioni sia +1; viene restituita la posizione della prima ricorrenza, a partire dall'inizio. Se la stringa di ricerca ha lunghezza uguale a zero, il risultato è uno.

Se non è possibile individuare la stringa di ricerca, il risultato è zero: se è presente la clausola FROM, è valida solo per la sezione della stringa di origine in cui viene eseguita la ricerca; se la clausola REPEAT è presente, è valida solo in caso di ricorrenze della stringa non sufficienti.

Se uno dei parametri è NULL, il risultato è NULL.

I tipi di dati delle stringhe di ricerca e di origine possono essere CHARACTER, BLOB o BIT, ma devono essere uguali.

Ad esempio:
         POSITION('Village' IN 'Hursley Village');   restituisce 9
         POSITION('Town' IN 'Hursley Village');   returns 0 

         POSITION ('B' IN 'ABCABCABCABCABC'); -> returns 2
         POSITION ('D' IN 'ABCABCABCABCABC'); -> returns 0

         POSITION ('A' IN 'ABCABCABCABCABC' FROM 4); -> returns 4
         POSITION ('C' IN 'ABCABCABCABCABC' FROM 2); -> returns 3

         POSITION ('B' IN 'ABCABCABCABCABC' REPEAT 2); -> returns 5
         POSITION ('C' IN 'ABCABCABCABCABC' REPEAT 4); -> returns 12

         POSITION ('A' IN 'ABCABCABCABCABC' FROM 4 REPEAT 2); -> returns 7
         POSITION ('AB' IN 'ABCABCABCABCABC' FROM 2 REPEAT 3); -> returns 10

         POSITION ('A' IN 'ABCABCABCABCABC' REPEAT -2); -> returns 10
         POSITION ('BC' IN 'ABCABCABCABCABC' FROM 2 REPEAT -3); -> returns 5
Concetti correlati
Panoramica di ESQL
Attività correlate
Sviluppo di ESQL
Selezione di un campo secondario da un campo più grande
Riferimenti correlati
Diagrammi di sintassi: tipi disponibili
Funzioni di manipolazione della stringa ESQL
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak05240_