質問
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
所属していません StackOverflow