17

T-SQL の文字列操作機能には、多くの要望が残されることがあることは誰もが知っています...

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

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

それについてどう思いますか?良い解決策は明確でコンパクトであるべきですが、「賢すぎる」こともあるということを覚えておいてください。

ここでこれを行うのは間違っていることに同意しますが、制御できない力によって立ち往生することがあります。

ありがとうございました。

4

3 に答える 3

17

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

SELECT STR(123.45, 6, 1)

------
 123.5

(1 row(s) affected)
于 2008-09-11T15:57:41.853 に答える
1

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

SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) + 
CAST(numColumn AS varchar(40)) FROM YourTable
于 2008-09-11T15:58:42.647 に答える
1

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

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)
于 2008-09-11T15:59:22.300 に答える