LPAD
La funzione LPAD restituisce una stringa composta da espressione che viene imbottita sulla sinistra.
La funzione LPAD tratta degli spazi iniziali o finali in espressione come significativo. Il riempimento si verificherà solo se la lunghezza effettiva di espressione è inferiore a lunghezzae pad non è una stringa vuota.
- espressione
- Un'espressione che specifica la stringa da cui deriva il risultato.
espressione deve essere un tipo di dati stringa, numerico, data/ora
o booleano
integrato. Un argomento numerico, datetime,
o Boolean
viene assegnato a VARCHAR con un CCSID che è il CCSID SBCS predefinito sul server corrente prima di valutare la funzione. Per ulteriori informazioni sulla conversione di valori numerici, datetime,
e Boolean
in una stringa di caratteri variabile, consultare VARCHAR. - lunghezza
- Un'espressione che specifica la lunghezza del risultato. L'espressione deve restituire un valore che sia un tipo di dati numerico incorporato, di stringa di carattere o di stringa grafica. Se il tipo di dati dell'espressione non è INTERO, viene implicitamente cast a INTERO prima di valutare la funzione. Il valore deve essere zero o un intero positivo inferiore o uguale a n, dove n è la lunghezza massima del tipo di dati di risultato. Consultare Limiti SQL per ulteriori informazioni.
Se espressione è una stringa grafica, lunghezza indica il numero di caratteri grafici o grafici Unicode. Se espressione è una stringa di carattere, lunghezza indica il numero di caratteri in cui un carattere può consistere in uno o più byte. Se espressione è una stringa binaria, lunghezza indica il numero di byte.
- cuscinetto
- Un'espressione che specifica la stringa con cui pad. L'espressione deve restituire un valore che sia un tipo di dati stringa, numerico, data/ora,
o booleano
integrato. Se il valore è un tipo di dati numerico, datetime,
o Boolean
, viene implicitamente assegnato a VARCHAR con un CCSID che è il CCSID SBCS predefinito sul server corrente prima di valutare la funzione.
Il valore per espressione e il valore per pad devono avere tipi di dati compatibili. If the CCSID of pad is different than the CCSID of espressione, the pad value is converted to the CCSID of espressione. Per ulteriori informazioni sulla compatibilità dei tipi di dati, consultare Assegnazioni e confronti.
Il tipo di dati del risultato dipende dal tipo di dati di espressione:
| Tipo di dati di espressione | Tipo di dati del Risultato per LPAD |
|---|---|
| CHAR o VARCHAR o numerico o datetime | CAR. VAR. |
| CLOB | CLOB |
| GRAFICO o VARGRAFICO | VARGRAPHIC |
| DBCLOB | DBCLOB |
| BINARIO o VARBINARIO | VARBINARY |
| BLOB | BLOB |
L'attributo di lunghezza del risultato dipende da lunghezza. Se lunghezza viene esplicitamente specificato da una costante intera che è maggiore di zero, l'attributo di lunghezza del risultato è lunghezza. Se lunghezza viene esplicitamente specificato da una costante intera che è zero, l'attributo di lunghezza del risultato è di 1. Se lunghezza viene specificato come espressione, l'attributo di lunghezza del risultato è il minimo di m+100 e la lunghezza massima del tipo di dati di risultato, dove m è l'attributo di lunghezza di espressione. Consultare Limiti SQL per ulteriori informazioni.
- Se lunghezza è 0, la lunghezza effettiva è di 0 e il risultato è la stringa di risultato vuota.
- Se lunghezza è uguale alla lunghezza effettiva di espressione, la lunghezza effettiva è la lunghezza di espressione.
- Se lunghezza è inferiore alla lunghezza effettiva di espressione, il risultato viene troncato. La lunghezza effettiva è lunghezza a meno che il tipo di dati del risultato non sia di varia lunghezza dati o di varia lunghezza Unicode. In questo caso verranno troncati solo caratteri completi.
- Per i dati Unicode, la lunghezza effettiva può essere lunghezza-1 per evitare che un carattere a doppio byte venga suddiviso.
- Per i dati misti, la lunghezza effettiva può essere inferiore a lunghezza 3 per tenere conto del troncamento di un carattere a doppio byte ed eventualmente di un carattere "shift-in"X'0F') e di un carattere "shift-out"X'0E').
- Se lunghezza è maggiore della lunghezza effettiva di espressione, la lunghezza effettiva è lunghezza a meno che il tipo di dati del risultato non sia di varia lunghezza dati o di varia lunghezza Unicode e pad contenga caratteri a doppio byte. In questo caso verranno imbottiti solo caratteri completi.
- Per i dati Unicode, la lunghezza effettiva può essere lunghezza-1 per evitare che un carattere a doppio byte venga suddiviso.
- Per i dati misti, la lunghezza effettiva può essere inferiore a lunghezza 3 per tenere conto del troncamento di un carattere a doppio byte ed eventualmente di un carattere "shift-in"X'0F') e di un carattere "shift-out"X'0E'). Inoltre, questo risultato non avrà codici di turno ridondanti "al seam". Pertanto, se il pad è una stringa che termina con un carattere "shift-in"X'0F') e l'espressione inizia con un carattere "shift-out"X'0E'), questi due byte vengono eliminati dal risultato.
Se un qualsiasi argomento può essere nullo, il risultato può essere nullo; se un qualsiasi argomento è nullo, il risultato è il valore nullo.
Il valore del risultato del risultato è lo stesso di espressione.
Esempi
- Esempio 1: Assumi che NOME è una colonna VARCHAR (15) che contiene i valori "Chris", "Meg" e "Jeff". La seguente query bloccherà completamente un valore a sinistra con i periodi:
Restituisce:SELECT LPAD(NAME,15,'.' ) AS NAME FROM T1;NAME --------------- ..........Chris ............Meg ...........Jeff - Esempio 2: Assumi che NOME è una colonna VARCHAR (15) che contiene i valori "Chris", "Meg" e "Jeff". La seguente query pad solo ogni valore a una lunghezza di 5:
Restituisce:SELECT LPAD(NAME,5,'.' ) AS NAME FROM T1;NAME ----- Chris ..Meg .Jeff - Esempio 3: Assumi che NOME è una colonna di tipo CHAR (15) contenente i valori "Chris", "Meg" e "Jeff". La funzione LPAD non pad perché NOME è un campo di caratteri a lunghezza fissa ed è in bianco imbottita già. Tuttavia, poiché la lunghezza del risultato è di 5, le colonne sono troncate:
Restituisce:SELECT LPAD(NAME,5,'.' ) AS NAME FROM T1;NAME ----- Chris Meg Jeff - Esempio 4: Assumi che NOME è una colonna VARCHAR (15) contenente i valori "Chris", "Meg" e "Jeff". In alcuni casi viene restituita un'istanza parziale della specifica del pad:
Restituisce:SELECT LPAD(NAME,15,'123' ) AS NAME FROM T1;NAME --------------- 1231231231Chris 123123123123Meg 12312312312Jeff - Esempio 5: Assumi che NOME è una colonna VARCHAR (15) contenente i valori "Chris", "Meg" e "Jeff". Da notare che "Chris" è troncato, "Meg" è imbottita e "Jeff" è invariato:
Restituisce:SELECT LPAD(NAME,4,'.' ) AS NAME FROM T1;NAME ---- Chri .Meg Jeff
