За щастие (?), в SQL Server 2012+ , вече можете да използвате FORMAT() за да постигнете това:
FORMAT(@s,'#,0.0000')
В предишни версии, с риск да изглеждате наистина грозни
[Запитване] :
декларирайте @s decimal(18,10);set @s =1234.1234567;изберете replace(convert(varchar,cast(floor(@s) as money),1),'.00', '. '+right(cast(@s * 10000 +10000.5 as int),4))
В първата част използваме MONEY->VARCHAR, за да създадем запетаите, но FLOOR() се използва, за да гарантира, че десетичните знаци отиват към .00
. Това е лесно разпознаваемо и заменено с 4-те цифри след десетичната запетая, като се използва комбинация от изместване (*10000
) и CAST като INT (отрязване), за да извлечете цифрите.
[Резултати] :
<предварителен код>| КОЛОНА_0 |--------------| 1,234.1235 |Но освен ако не трябва да доставяте бизнес отчети с помощта на SQL Server Management Studio или SQLCMD, това НИКОГА не е правилното решение, дори и да може да се направи. Всяка предна среда или среда за отчитане има подходящи функции за обработка на форматирането на дисплея.