2017-03-02 10 views
1

0.50,0.40などの数字から末尾の「0」をトリミングする必要があります。 SQL ServerでTRIM関数を使用できません。SQL Serverで後続の0をトリミングする方法

convert(decimal(10, 1), number)は、「0.23」などの値に影響するため使用しません。

+1

これは通常、プレゼンテーション層で取り扱われているものです。私はあなたの直接の質問をカバーする以下の答えを試みました。 –

答えて

0

ここには、任意の数値からすべての末尾のゼロを削除する一般的な方法があります。最初に、数字をテキストにキャストし、末尾に0がいくつあるかを、REVERSE(),REPLACE()、およびCHARINDEX()を使用してカウントします。次に、LEFT()を使用して、数値テキスト全体から何個の末尾のゼロを引いた数を引いたものを使用します。

SELECT LEFT(CAST(col AS VARCHAR), 
      LEN(CAST(col AS VARCHAR)) - 
      CHARINDEX(LEFT(REPLACE(REVERSE(CAST(col AS VARCHAR)), '0', ''), 1), 
         REVERSE(CAST(col AS VARCHAR))) + 
      CHARINDEX(LEFT(REPLACE(REVERSE(CAST(col AS VARCHAR)), '0', ''), 1), 
         REPLACE(REVERSE(CAST(col AS VARCHAR)), '0', ''))) AS new_col 
FROM yourTable 

ここにデモ:

Rextester

0

Uは、このスクリプトを試すことができます。

select convert (DOUBLE PRECISION , column_name) from table_name

関連する問題