質問

T-SQL の文字列操作機能には、時には不十分な点が多々あることは誰もが知っています。

T-SQL で右揃えのテキスト列として出力する必要がある数値フィールドがあります。例:

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

それについてはどうしますか?優れたソリューションは明確でコンパクトである必要がありますが、「賢すぎる」ということがあるということを覚えておいてください。

ここがこれを行うのに間違った場所であることには同意しますが、私たちは時々、私たちの制御の及ばない力によって立ち往生することがあります。

ありがとう。

役に立ちましたか?

解決

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

SELECT STR(123.45, 6, 1)

------
 123.5

(1 row(s) affected)

他のヒント

最も簡単な方法は、左をパディングすることです。

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)

SQL でこれを行う必要がある場合は、次のコードを使用できます (このコードは、40 文字を超える数値がないことを前提としています)。

SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + 
CAST(numColumn AS varchar(40)) FROM YourTable
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top