sql-server - rellenar - right sql server
LPAD en SQL Server 2008 (3)
Básicamente, rellene con la cantidad de caracteres que tiene la intención de seleccionar y luego, a la derecha, la cadena.
Select right(replicate('' '',2) + YourFieldValue,2) from YourTable
Puede usar la función espacio en lugar de replicar, espacio (número_de_espacios), duplicar solo le permite rellenar con caracteres alternativos.
No puedo ver una función como LPAD
en SQL Server 2008. Por ejemplo, ¿cómo puedo convertir las siguientes consultas en T-SQL? Gracias por tus respuestas
select LPAD(MY_VALUE,2,'' '')) VALUE
FROM MY_TABLE
Necesitaba algo similar, pero no pude usar ''+'' porque entonces se interpretó como una adición entre los números ''0000000000'' y [seq_no]. Así que usé el concat en su lugar y funcionó bien.
select right (concat(replicate(''0'', 10), next value for seq_no), 10);
Los cálculos manuales pueden ser molestos para aplicar dentro de las consultas. Afortunadamente, podemos crear una función:
CREATE FUNCTION LPAD
(
@string VARCHAR(MAX), -- Initial string
@length INT, -- Size of final string
@pad CHAR -- Pad character
)
RETURNS VARCHAR(MAX)
AS
BEGIN
RETURN REPLICATE(@pad, @length - LEN(@string)) + @string;
END
GO
(Por favor, reemplace VARCHAR
con NVARCHAR
a su gusto, o utilice un algoritmo alternativo).
Entonces:
SELECT dbo.LPAD(MY_VALUE, 2, '' '') VALUE
FROM MY_TABLE
Debería funcionar desde SQL Server 2005 .