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

4 sposoby konwersji liczby na procent w SQL Server (T-SQL)

Oto 4 sposoby konwersji liczby na wartość procentową w programie SQL Server.

Ściśle mówiąc, tak naprawdę nie „przeliczamy” tego na procent. Formatujemy liczbę jako procent. Ale aby to zrobić, musimy przekonwertować liczbę z liczbowego typu danych na łańcuch.

Oto 4 sposoby, aby to zrobić.

Przykład 1 – Funkcja FORMAT()

Najbardziej oczywistym wyborem do użycia jest FORMAT() funkcjonować. Umożliwia to wyświetlanie liczb i dat w określonym formacie.

Oto przykład użycia tej funkcji do wyświetlenia liczby jako wartości procentowej:

SELECT FORMAT(55, 'P') Result;

Wynik:

+------------+
| Result     |
|------------|
| 5,500.00 % |
+------------+

Zauważ, że do naszej wartości zostały dodane cztery zera (dwa przed przecinkiem i dwa po).

Aby uzyskać te 55 procent, wymagane byłyby następujące elementy:

SELECT FORMAT(.55, 'P') Result;

Wynik:

+----------+
| Result   |
|----------|
| 55.00 %  |
+----------+

Jeśli liczba jest rzeczywistą wartością procentową, którą chcesz, możesz to zrobić:

SELECT FORMAT(55 * .01, 'P') Result;

Wynik:

+----------+
| Result   |
|----------|
| 55.00 %  |
+----------+

Możesz również usunąć część ułamkową, dodając zero do specyfikatora formatu:

SELECT FORMAT(.55, 'P0') Result;

Wynik:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

W razie potrzeby możesz również dodać więcej miejsc po przecinku:

SELECT FORMAT(.55123456, 'P7') Result;

Wynik:

+--------------+
| Result       |
|--------------|
| 55.1234560 % |
+--------------+

Przykład 2 – Funkcja CONVERT()

Możesz alternatywnie użyć CONVERT() funkcja konwertująca liczbę na ciąg, a następnie dodaj znak procentu na końcu.

Może się to wydawać nieco niepotrzebne, biorąc pod uwagę, jak łatwe uczynił to poprzedni przykład, jednak FORMAT() funkcja została wprowadzona dopiero w SQL Server 2012. Dlatego tak należy to zrobić, jeśli używasz wcześniejszej wersji SQL Server.

SELECT CONVERT(VARCHAR(4), 55) + ' %' Result;

Wynik:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Oczywiście, jeśli Twój numer to mniej więcej .55 i musisz to wyświetlić jako 55,00%, możesz zawsze pomnożyć to przez 100:

SELECT CONVERT(VARCHAR(6), 0.55 * 100) + ' %' Result;

Wynik:

+----------+
| Result   |
|----------|
| 55.00 %  |
+----------+

W tym przypadku również zwiększyłem rozmiar varcharu typ danych, aby uwzględnić dodatkowe znaki.

Możesz także usunąć część ułamkową za pomocą LEFT() funkcja:

SELECT CONVERT(VARCHAR(6), LEFT(0.55 * 100, 2)) + ' %' Result;

Wynik:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Chociaż musisz być ostrożny podczas robienia tego, ponieważ rzeczywista wartość może się różnić, może być większa lub mniejsza niż 2. W takim przypadku możesz użyć TRIM() funkcja przycinania wiodących zer i/lub kropek końcowych:

SELECT CONVERT(VARCHAR(6), TRIM('0,.' FROM LEFT(0.55 * 100, 3))) + ' %' Result;

Wynik:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Jednak nie jest to idealne, a FORMAT() funkcja oczywiście zapewnia znacznie większą elastyczność przy minimalnej ilości kodu.

Przykład 3 – Funkcja CAST()

Możemy alternatywnie użyć CAST() funkcja, aby zrobić to samo, co w poprzednim przykładzie:

SELECT CAST(55 AS VARCHAR(4)) + ' %' Result;

Wynik:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Zauważ, że CAST() i CONVERT() użyj nieco innej składni. W przypadku CAST() wartość do rzutowania jest pierwsza, podczas gdy jest na odwrót z CONVERT() .

Przykład 4 – CONCAT() Funkcja

Możesz także użyć CONCAT() funkcja łączenia liczby ze znakiem procentu:

SELECT CONCAT(55, ' %') Result;

Wynik:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Ta funkcja niejawnie konwertuje wszystkie argumenty na typy łańcuchowe przed konkatenacją.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć się z SQL Server za pomocą sqlalchemy przy użyciu uwierzytelniania systemu Windows?

  2. Jak wykonać plik .sql za pomocą powershell?

  3. Jak przekonwertować DateTime na VarChar

  4. SQL Server konwertuje ciąg na datę i godzinę

  5. SQL Server sprawdza rozróżnianie wielkości liter?