如何使用select语句在一些字符后添加尾随空格?

时间:2012-02-17 16:05:28

标签: sql-server-2005 tsql

在每一列中,在前5个字符后,我需要用'*'添加/替换下5个字符,然后再添加10个空格。

SELECT nameFirst, nameLast, number, fax 
FROM table_01

预期结果: -

Revol*****          Jenni*****          598-1*****          12345*****      
Jenit*****          Austi*****          598-1*****          12345*****          
Revol*****          Jenni*****          598-1*****          12345*****

感谢。

1 个答案:

答案 0 :(得分:4)

这应该这样做。

SELECT 
   LEFT(nameFirst,5) + '*****          ',
   LEFT(nameLast,5) + '*****          ',
   LEFT(number,5) + '*****          ',
   LEFT(fax ,5) + '*****          '
FROM table_01

如果您认为以后可能想要使用变量来表示*和空格字符的数量,那么这种技术可能会更好(并且更具可读性),但使用特定于tSQL的关键字:

SELECT 
   LEFT(nameFirst,5) + REPLICATE('*',5) + SPACE(10),
   LEFT(nameLast,5) + REPLICATE('*',5) + SPACE(10),
   LEFT(number,5) + REPLICATE('*',5) + SPACE(10),
   LEFT(fax ,5) + REPLICATE('*',5) + SPACE(10)
FROM table_01

根据您的评论更新
假设你想为< 5个字符的名字提供额外的*。这是一种应该有效的方法。

SELECT 
   LEFT(nameFirst + replicate('*',5),5) + replicate('*',5) + SPACE(10)
   ...
FROM table_01

这有点偷偷摸摸,但它避免了更长的内联条件。