0

この表を表示する際に不要なゼロを削除したい

Produit | Prix
---------------
   A    | 1000.65400
   B    | 1200.654000
   C    | 2540.6540000
   D    | 1000.25000
   E    | 224000.6540000000

この結果を取得したい:

Produit | Prix
---------------
   A    | 1000.654
   B    | 1200.654
   C    | 2540.654
   D    | 1000.25
   E    | 224000.654

どんな助けでも感謝します。ありがとうございました

4

1 に答える 1

0

前後の不要な 0 をトリムします。

UPDATE yourTable
SET Prix = CASE
  WHEN Prix LIKE '%.%[1-9]%' THEN -- has a non-0 after the decimal point
    REPLACE(RTRIM(LTRIM(REPLACE(Prix, '0', ' '))), ' ', '0')
  WHEN Prix LIKE '%.%' THEN -- only 0's after the decimal point, remove point
    REPLACE(REPLACE(RTRIM(LTRIM(REPLACE(Prix, '0', ' '))), ' ', '0'), '.', '')
  ELSE -- has no decimal point, only trim leading 0's
    REPLACE(LTRIM(REPLACE(Prix, '0', ' ')), ' ', '0')
  END

末尾のみをトリミングする場合:

UPDATE yourTable
SET Prix = CASE
  WHEN Prix LIKE '%.%[1-9]%' THEN -- has a non-0 after the decimal point
    REPLACE(RTRIM(LTRIM(REPLACE(Prix, '0', ' '))), ' ', '0')
  ELSE -- only 0's after the decimal point, remove point
    REPLACE(REPLACE(RTRIM(LTRIM(REPLACE(Prix, '0', ' '))), ' ', '0'), '.', '')
  END
WHERE Prix LIKE '%.%' -- make sure it's decimal

上記はすべて0の s をスペースに置き換え、組み込みのトリム関数を使用してスペースをトリミングしてから、スペースを0再び s に置き換えます。

于 2013-02-25T17:26:39.903 に答える