我需要生成一个文本文件并在里面生成员工姓名,长度应为20.例如,如果名称长度大于20,则只显示前20个字符,如果名称长度小于20,则首先显示名称和带有空格的前导字符填充(左对齐)。
我尝试了以下示例
的 1)
select right(' ' + CONVERT(NVARCHAR, 'Merbin Joe'), 20);
但是这会在名称前添加填充空格,但我需要填写名称
2)
select left(' ' + CONVERT(NVARCHAR, 'Merbin Joe'), 20)
但这首先填补了20个空白区域。
答案 0 :(得分:2)
left
的那个几乎是正确的,除了你必须在字符串之后添加空格,而不是之前:
select
left(CONVERT(NVARCHAR, 'Merbin Joe') + replicate(' ', 20), 20)
答案 1 :(得分:2)
试试这个:
SELECT LEFT(CONVERT(NVARCHAR, 'Merbin Joe') + SPACE(20), 20)
答案 2 :(得分:2)
听起来你想要正确对齐文字?
SELECT RIGHT ( REPLICATE(' ', 20) + CONVERT(NVARCHAR(20), 'Merbin Joe'), 20)
如果你想左对齐
后面的文本和填充空格SELECT CONVERT(NCHAR(20), 'Merbin Joe')