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í.