从SQL表在SQL Server中创建固定长度文件

时间:2018-08-21 09:41:53

标签: sql sql-server sql-server-2012

我正在尝试从输入表下面创建一个固定长度的文件。每个字段都有固定长度,例如:Employeeid将占用9(Employeeid + space(9-len(Employeeid )))个字节

请只建议使用方法。谢谢

FileType Field    Table_Field   Start_Pos   End_Pos
    A1  CompanyID   Company_id    1         3
    A1  EmployeeID  EID           4         12
    A1  PLAN        PLAN_ID       13        14
    A1  space       space(9)      21        29
    A1  TCode       A1            30        31
    A1  Ad1         ADD1          32        61
    A1  Ad2         ADD2          62        91
    A1  IND         space(1)      92        92
    A1  Fil         space(8 )     93       100

1 个答案:

答案 0 :(得分:1)

您是否正在寻找类似的东西?

select (left(convert(char(100), Company_id), 3 - 1 + 1) +
        left(convert(char(100), EID), 12 - 4 + 1) +
        left(convert(char(100), Plan_id), 14 - 13 + 1) +
        . . . 
       )
from t;

这会将行转换为固定长度的字符串,并具有所需的位置。