Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Miejsca dziesiętne w formacie SQL Server z przecinkami

Na szczęście (?), w SQL Server 2012+ , możesz teraz używać FORMAT() aby to osiągnąć:

FORMAT(@s,'#,0.0000')

W poprzednich wersjach, ryzykując, że będziesz wyglądać naprawdę brzydko

[Zapytanie] :

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))

W pierwszej części używamy MONEY->VARCHAR do tworzenia przecinków, ale FLOOR() służy do zapewnienia, że ​​ułamki dziesiętne idą do .00 . Jest to łatwe do zidentyfikowania i zastąpione 4 cyframi po miejscu dziesiętnym za pomocą kombinacji przesunięcia (*10000 ) i CAST jako INT (obcięcie), aby uzyskać cyfry.

[Wyniki] :

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

Ale jeśli nie musisz dostarczać raportów biznesowych za pomocą SQL Server Management Studio lub SQLCMD, jest to NIGDY właściwe rozwiązanie, nawet jeśli można to zrobić. Każdy interfejs lub środowisko raportowania ma odpowiednie funkcje do obsługi formatowania wyświetlania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przyspieszone odzyskiwanie baz danych w programie SQL Server 2019

  2. Co robisz w SQL Server, aby TWORZYĆ LUB ZMIENIAĆ?

  3. SQL Server ARITHABORT

  4. Jak ograniczyć niezalogowanym/nieautoryzowanym użytkownikom możliwość przeglądania stron internetowych w ASP.NET?

  5. Jak sprawdzić długość ciągu, a następnie wybrać podciąg w Sql Server