2008-09-11 40 views
9

私たちは皆、時にはT-SQLの文字列操作機能を知っているがまだ十分とは言えない...右揃えテキスト

私は右揃えとしてT-SQLで出力する必要数値フィールドを持っていますテキスト列。例:

Value 
---------- 
    143.55 
    3532.13 
    1.75 

あなたはどうしますか?良い解決策は、明確でコンパクトであるべきですが、「あまりにも賢い」ということがあることを忘れないでください。

私はこれが間違っていることに同意しますが、時には私たちのコントロール外の勢力に悩まされていることがあります。

ありがとうございます。

答えて

13

STR functionには、オプションの長さ引数と小数点以下の桁数があります。

SELECT STR(123.45, 6, 1) 

------ 
123.5 

(1 row(s) affected) 
+0

ブラボー!どうしたの? STR()は小数点ではなく浮動小数点数をとります。 SQLServerのヘルプでは、これを非常に明示しています(「...近似数値(浮動小数点数)データ型の式」)。小数点の桁数が足りない場合、丸めが問題になります。 これは、ほとんどの場合、依然として優れた答えです –

0

あなたはfolowingコード(このコードは、あなたが40文字よりも大きいです何の数字を持っていないことを前提として)使用することができますSQLでこれを行う必要がある場合:最も簡単な方法は、パッドにある

SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + 
CAST(numColumn AS varchar(40)) FROM YourTable 
2

を左:

CREATE FUNCTION PadLeft(@PadString nvarchar(100), @PadLength int) 
RETURNS nvarchar(200) 
AS 
begin 
return replicate(' ',@padlength-len(@PadString)) + @PadString 
end 
go 
print dbo.PadLeft('123.456', 20) 
print dbo.PadLeft('1.23', 20)