2016-06-14 22 views
0

我正在使用sql server,我需要插入一个字符串(定义为NVARCHAR(1000))多个制表符。如何在sql server中设置char(9)的长度

问题是char(9)引入了太多的空间,我正在寻找一种方法来设置制表长度,如果可能的话。

我打一个比方:

SELECT t.name + char(9) + t.surname + char(9) + t.number 
FROM table t 

打印这样的事情(想象,这_是空格):

Luk_________Franklin_________34512334

David_______King_____________45

,但我需要的是:

Luk____Frank lin____34512334

David__King________45

我知道解决办法是举例说:“利用空间(4)”,但我需要的表格,因为我把该列的内容在一个标签在专有软件。这意味着所有的名字,姓氏和号码应该一致,只有制表符(我认为)可以帮助我。

我希望能够很好地解释我自己。

+2

演示文稿格式化不是SQL Server的工作,因此您会发现越来越难以继续捆绑使用它来实现它的目的。我强烈建议您使用为此明确设计的众多不同工具,实用程序和设施中的任何一种。将数据从SQL Server中提取到Excel,VB,C#,Access等,这些都是文本格式更好的选择。 – RBarryYoung

回答

0

这样如何(将增加5个空格):

DECLARE @Space char(5) 
SET @Space = '  ' 

SELECT t.name + @Space + t.surname + @Space + t.number 
FROM table t 

或替代地也与5位:

SELECT t.name + '  ' + t.surname + '  ' + t.number 
FROM table t 

编辑:了解您的需求更好地后。这将使每列固定长度并根据需要添加空格。

SELECT Cast(t.name AS CHAR(9)) + 
     Cast(t.surname AS CHAR(9)) + 
     Cast(t.number AS CHAR(9)) 
FROM table t 
+0

这样,问题是所有行中的所有姓名,姓氏和号码都没有对齐。因为所有的名字(和姓氏)有不同的长度。 – Anthos89

+0

@ Anthos89请参阅编辑。将CHAR值设置为所需的长度。 – BJones

+0

虽然这应该工作(也许暂时),我同意@RBarryYoung - 你的应用程序应该照顾这种格式 – BJones