2008-12-17 14 views
5

Tengo dos campos en una tabla. Uno contiene valores como BTA, BEA, REA. El otro contiene valores como 1,2,63,103.¿Cómo concatenar dos cadenas en sql y rellenar una cadena con 0?

Quiero combinar los 2 campos para que se vean así BTA001, BTA002, BTA063, BTA103.

Note como si los números no son 3 caracteres de longitud, quiero cojín de algunos de 0 a la izquierda del número para que sea igual a 3.

¿Cómo voy a ir haciendo esto? Los campos de la tabla se denominan Tipo que corresponden a BTA, BEA, y REA y la identificación es el campo que corresponde a 1, 2, 63 y 103.

Respuesta

9
select Type + right('00' + cast(id as varchar(10)), 3) 
from ... 

Editar: si id puede ser nulo y se le gustaría un cero para mostrar, que puede hacer:

select Type + right('00' + cast(isnull(id, 0) as varchar(10)), 3) 
from ... 
+0

¿Cuál es la principal diferencia entre su respuesta y la de Aprendizaje? – Xaisoft

+0

Muy poco. Hice la suposición de que siempre obtendrá un número de un solo dígito de la columna Id, en cuyo caso solo debe anteponer dos ceros. CAST es ANSI-standard (por lo tanto, portátil), mientras que CONVERT es SQL Server específico, pero le ofrece opciones de conversión más flexibles. – RedFilter

+0

¿Qué sucede si la columna Id puede contener un nulo? – Xaisoft

1

seleccione C1 + derecha (('000' + fundido (C2 como nvarchar (10)), 3) como

de t1

1

seleccione FIELD1 + RI GHT ('000' + CONVERTIR (VARCHAR, FIELD2), 3)

+0

¿Cuál es la diferencia entre su implementación y OrbMan? – Xaisoft

Cuestiones relacionadas