如何在sql

时间:2016-03-16 06:29:21

标签: sql sql-server

我需要生成一个文本文件并在里面生成员工姓名,长度应为20.例如,如果名称长度大于20,则只显示前20个字符,如果名称长度小于20,则首先显示名称和带有空格的前导字符填充(左对齐)。

我尝试了以下示例
1)

select right('                    ' + CONVERT(NVARCHAR, 'Merbin Joe'), 20);

但是这会在名称前添加填充空格,但我需要填写名称

2)

select left('                    ' + CONVERT(NVARCHAR, 'Merbin Joe'), 20)

但这首先填补了20个空白区域。

3 个答案:

答案 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')