2016-06-14 91 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