2009-03-31 10 views

答えて

0

HLGEMによれば、フロントエンドでこの種の処理を行うのが最善ですが、キックの場合、次のコードが動作するようです。おそらくこれを行うにはより良い方法があります。

REPLACE(
    RTRIM(
      REPLACE(
       CAST(@test AS VARCHAR), '0', ' ' 
     ) 
    ), ' ', '0' 
) + 
CASE 
    WHEN @test = FLOOR(@test) THEN '00' 
    WHEN FLOOR(@test*10) = @test * 10 THEN '0' 
    ELSE '' 
END 
+0

小さな補正が生成されます! –

+0

ありがとう、私はそれを修正しました。最初の化身では小数点が必要でしたが、それは今ではありません。 –

0

CONVERT()CAST()機能

SELECT CAST(@val AS numeric(18,6)) 

SELECT CAST(@val AS decimal(18,6)) 

があります私はネイティブのT-SQLのフォーマット文字列に遭遇していないが、2005年以降のために、私はあなたがCLR UDFの書面で何かを実装することができ確信していますあなたの選択した.NET言語で。

3

正に、このタイプの書式設定は、SQLではなくアプリケーションによって最も効果的です。 SQlはデータへのアクセス用であり、データの内容に影響を与えるために、どんなフォーマットでもそれほど良いものではありません。

1

「.00' を付けずに少し異なる場合:

CAST(CAST(@val AS REAL) AS VARCHAR) 
  1. 12.550000が12.55を生成します。
  2. 14.456700は14.4567を生成する。 @Test = FLOOR(@Test)THEN」0.00' は する必要があります... THEN '00' ありがとう:
  3. 15.00は15