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

このような印刷何か(_はスペースですIMMAGINE):

Luk_________Franklin_________34512334

David_______King_____________45

しかし、私は必要なのです。

Luk____Frank lin____34512334

David__King________45

私は解決策は、例えば可能性があることを知っている:「使用SPACE(4)」が、私はプロプライエタリなソフトウェアでラベルにその列の内容を置くので、私は集計を必要としています。これは、すべての名前、姓および番号が整列され、集計(私が考える)のみが私を助けることができることを意味する。

私は自分自身をうまく説明したいと思っています。

+2

プレゼンテーションの書式設定はSQL Serverの仕事ではないため、意図していなかったこの目的のために使用することをますます困難にしています。私は強くあなたがこれのために明示的に設計された多くの、多くの異なるツール、ユーティリティ、設備を使用することを強くお勧めします。 SQL ServerからExcel、VB、C#、Accessなどのデータにデータを引き出します。これは、テキスト書式設定の方がより優れています。 – RBarryYoung

答えて

0

どのようにこの程度(5つのスペースを追加します):より良いあなたのニーズを理解した後:

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

はEDIT:5つのスペースで

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

SELECT t.name + @Space + t.surname + @Space + 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

関連する問題