选择查询固定长度

hap*_*ile 6 sql ssis text-files sql-server-2008 fixed-width

我有一个名为customer的表,我选择几列并使其固定长度,我需要将值发送到SSIS包以获得固定长度的输出并写入文本文件

customerID:10
Mobilenumber:11
Emailaddress:256

select customerID,mobilenumber,Emailaddress from customer 
Run Code Online (Sandbox Code Playgroud)

我想确保我的customerID始终为10,手机号码为11,电子邮件地址为256.

Tim*_*ner 8

您可以将它们转换为固定长度的字符串数据类型,如:

select cast(customerID as char(10)) as customerID,
    cast(mobilenumber as char(11)) as mobilenumber,
    cast(Emailaddress as char(256)) as Emailaddress
from customer
Run Code Online (Sandbox Code Playgroud)

如果您在这样工作时遇到任何奇怪的现象,那么记住您的ANSI_PADDING设置可能会有所帮助.

另一种方法可能是:

select left(Emailaddress + replicate(' ', 256), 256)
Run Code Online (Sandbox Code Playgroud)

虽然这种方法通常只是将类似的逻辑从其他语言应用到T-SQL.