SQL Server Hur man lämnar ett nummer med Zeros

Den replikerade T-SQL-funktionen i Microsofts SQL Server gör det enkelt att lägga till ledande nollor till ett talvärde.

Låt oss skapa ett bord "emp" med EmpID och lön kolumner.

skapa tabell emp (empid int, lön int);


Sätt in några provdata i tabellen 'emp'.

infoga i emp-värden (1 300); infoga i emp-värden (2,30); infoga i emp värden (3.500000); infoga i emp-värden (4,1000);
välj * från emp; empidisk lön ----------- ----------- 1 300 2 30 3 500000 4 1000 (4 rader påverkas)


Nu, låt oss lämna kudden på lön kolumn med 0s.

Om vi ​​inte vet hur många 0s vi behöver padda till vänster så att alla värden skulle vara lika långa, kan vi hitta maxlängden på lön kolumn med följande fråga:

SELECT Max (mylängd) FRÅN (VÄLJ LEN (lön) AS mylängd FRÅN emp) x; ----------- 6

Frågan returnerar ett värde av 6 som är max längd i lön kolumn på grund av empid 3 med 500000 lön.

Nu lägger du till de ledande nollorna till lön kolumn kan vi använda den replikerade inbyggda strängfunktionen i T-SQL.

Syntax:

replikera (stränguttryck, heltalsexpression);


SQL Server 2008: Nedanförfrågan lämnar lösenkolonn med 0s.

välj empid, replikera ('0', 6 - len (lön)) + cast (lön som varchar) som lön från emp; empidisk lön ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 rader påverkas)


I SQL Server 2008-versionen är den första parametern vår "0" vadderingssträng. I den andra parametern subtraherar vi längden på lön kolumn från 6 som är vår max längd. Således vet vårt uttryck hur många 0 som behövs för att lämna vänster och sammanfoga lön kolumn.

Med SQL Server 2012 kan du uppnå samma utmatning med en enkel linje med hjälp av FORMAT-funktionen.

SQL Server 2012: Vänster pad lönkolumn med 0s

VÄLJ FORMAT (lön, '000000') FRÅN emp; empidisk lön ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 rader påverkas)