如何将给定列中的可变长度值格式化为相同长度的输出

时间:2019-03-25 23:16:46

标签: sql-server tsql spaces

从需求文档中,我需要将SQL Server中的数据提取到文本文件中,格式为类似格式,其中第一列需要填充位置1-9,下一个需要填充位置10-27,接下来的28-43,依此类推,无论该列中的数据实际长度如何。

鉴于每个行/列组合将具有不同的数据长度,因此不确定如何处理。任何想法,将不胜感激。

我尝试过右空间,左空间等,但是它们都只是在实际数据长度上添加空格,而不是将返回数据的长度填充为x length long。

WITH
CTE_Sum
AS
(
    SELECT
        Batting.playerID
        ,SUM(Batting.HR) AS TotalHR_Src
    FROM
        Batting
    GROUP BY
        Batting.playerID
)
,CTE_Update
AS
(
    SELECT
        People.playerID
        ,People.Total_HR
        ,CTE_Sum.TotalHR_Src
    FROM
        CTE_Sum
        INNER JOIN People ON People.playerID = CTE_Sum.playerID
)
UPDATE CTE_Update
SET 
    Total_HR = TotalHR_Src
;

类似

SELECT 
CAST(LEFT(FIRSTNAME + SPACE(60), 60) AS CHAR(60)) 'LEFT'
FROM MLA

1 个答案:

答案 0 :(得分:0)

select RPAD( firstname, 10, ' ' ) as padded_name from MLA