La funzione T-SQL replicata in SQL Server di Microsoft semplifica l'aggiunta di zeri iniziali a un valore numerico.
Creiamo un tavolo 'emp' con EmpID e stipendio colonne.
creare tabella emp (empid int, salary int);
Inserisci alcuni dati di esempio nella tabella 'emp'.
inserire in valori emp (1.300); inserire in valori emp (2,30); inserire in valori emp (3.500.000); inserire in valori emp (4,1000);
seleziona * da emp; salario empid ----------- ----------- 1 300 2 30 3 500000 4 1000 (4 righe (s) interessate)
Ora, lasciamo il pad sinistro stipendio colonna con 0s.
Se non sappiamo quanti 0 abbiamo bisogno di pad a sinistra in modo che tutti i valori siano di uguale lunghezza, possiamo trovare la lunghezza massima di stipendio colonna usando la seguente query:
SELEZIONA Max (mylength) FROM (SELECT Len (salary) AS mylength FROM emp) x; ----------- 6
La query restituisce un valore di 6, che è la lunghezza massima in stipendio colonna a causa di Empid 3 con 500000 stipendio.
Ora per aggiungere gli zeri iniziali al stipendio colonna, possiamo usare la funzione di stringa incorporata di replica in T-SQL.
Sintassi:
replicare (espressione di stringhe, espressione intera);
SQL Server 2008: La query seguente lascerà la colonna salariale con 0s.
selezionare empid, replicare ('0', 6 - len (stipendio)) + cast (stipendio come varchar) come salario da emp; Stipendio empatico ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 righe interessate)
Nella query della versione di SQL Server 2008, il primo parametro è la stringa di riempimento "0". Nel secondo parametro stiamo sottraendo la lunghezza di stipendio colonna da 6 che è la nostra lunghezza massima. Quindi, la nostra espressione sa quanti 0 sono necessari per lasciare il pad e concatenare il stipendio colonna.
Con SQL Server 2012 è possibile ottenere lo stesso risultato con un semplice codice a una riga utilizzando la funzione FORMAT.
SQL Server 2012: Colonna salariale pad sinistro con 0 s
SELEZIONA FORMATO (salario, '000000') da emp; Stipendio empatico ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 righe interessate)