sql >> Databáze >  >> RDS >> Sqlserver

SQL Server formátujte desetinná místa s čárkami

Naštěstí(?) v SQL Server 2012+ , nyní můžete použít FORMAT() jak toho dosáhnout:

FORMAT(@s,'#,0.0000')

V předchozích verzích s rizikem, že budou vypadat opravdu ošklivě

[Dotaz] :

declare @s decimal(18,10);
set @s = 1234.1234567;
select replace(convert(varchar,cast(floor(@s) as money),1),'.00',
    '.'+right(cast(@s * 10000 +10000.5 as int),4))

V první části používáme k vytvoření čárek MONEY->VARCHAR, ale FLOOR() se používá k zajištění toho, aby desetinná místa šla na .00 . Toto je snadno identifikovatelné a nahrazeno 4 číslicemi za desetinným místem pomocí kombinace posunů (*10000 ) a CAST jako INT (zkrácení) pro odvození číslic.

[Výsledky] :

|   COLUMN_0 |
--------------
| 1,234.1235 |

Ale pokud nemusíte dodávat obchodní sestavy pomocí SQL Server Management Studio nebo SQLCMD, je to NIKDY správné řešení, i když je možné. Jakékoli front-endové nebo reportovací prostředí má správné funkce pro zpracování formátování zobrazení.



  1. Analýza XML s neznámými jmennými prostory v Oracle SQL

  2. jak načíst sadu více výsledků z uložené procedury mysql v laravel

  3. První písmeno velké. MySQL

  4. Jak napsat Pandas Dataframe do modelu Django