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

Jak działa funkcja STR() w SQL Server (T-SQL)

W SQL Server, T-SQL STR() funkcja zwraca dane znakowe przekonwertowane z danych liczbowych. Zwracana wartość ma typ zwrotu varchar .

Podczas wywoływania funkcji podajesz dane liczbowe jako argument. Funkcja następnie konwertuje je na dane znakowe. Istnieją również dwa opcjonalne argumenty, których można użyć do określenia długości i liczby miejsc na prawo od przecinka dziesiętnego.

Składnia

Składnia wygląda tak:

STR ( float_expression [ , length [ , decimal ] ] )

Gdzie float_expression jest wyrażeniem przybliżonej liczby (float ) typ danych z kropką dziesiętną.

długość jest opcjonalnym argumentem, którego możesz użyć do określenia całkowitej długości. Obejmuje to kropkę dziesiętną, znak, cyfry i spacje. Wartość domyślna to 10.

dziesiętny to liczba miejsc na prawo od przecinka dziesiętnego. Może to być maksymalna wartość 16. Jeśli jest więcej, zostanie skrócona do 16.

Przykład 1 – Podstawowe użycie

Oto przykład tego, jak to działa:

SELECT STR(123.45) AS Result;

Wynik:

+------------+
| Result     |
|------------|
|        123 |
+------------+

Przykład 2 – Zaokrąglanie

Domyślnie liczba jest zaokrąglana do liczby całkowitej. Jeśli dostosujemy dane wejściowe z poprzedniego przykładu (np. zwiększymy część ułamkową z .45 do .55 ) otrzymujemy:

SELECT STR(123.55) AS Result;

Wynik:

+------------+
| Result     |
|------------|
|        124 |
+------------+

Przykład 3 – Długość

W przypadku korzystania z opcjonalnej długości parametr, jego wartość powinna być większa lub równa części liczby przed przecinkiem plus znak liczby (jeśli występuje).

Na przykład poniższe jest w porządku, ponieważ długość jest większa niż część liczby przed przecinkiem:

SELECT STR(123.55, 4) AS Result;

Wynik:

+----------+
| Result   |
|----------|
|  124     |
+----------+

Jednak poniższy przykład pokazuje, co się dzieje, gdy długość wartość jest za mała:

SELECT STR(123.55, 2) AS Result;

Wynik:

+----------+
| Result   |
|----------|
| **       |
+----------+

Pamiętaj też, że długość określa długość danych wyjściowych i zawiera kropkę dziesiętną, znak, cyfry i spacje. Domyślna długość to 10.

Oto przykład pokazujący różnicę w wynikach w zależności od wartości długości argument:

SELECT 
  123 AS '123',
  STR(123, 3) AS '3',
  STR(123, 10) AS '10',
  STR(123, 16) AS '16';

Wynik:

+-------+-----+------------+------------------+
| 123   | 3   | 10         | 16               |
|-------+-----+------------+------------------|
| 123   | 123 |        123 |              123 |
+-------+-----+------------+------------------+

Aby pokazać to w inny sposób, w poniższym przykładzie przycinam dane wyjściowe za pomocą TRIM() funkcja (i porównaj ją z wersją nieprzycinaną):

SELECT 
  TRIM(STR(123, 16)) AS 'A',
  STR(123, 16) AS 'B';

Wynik:

+-----+------------------+
| A   | B                |
|-----+------------------|
| 123 |              123 |
+-----+------------------+

Przykład 4 – Miejsca dziesiętne

Oto przykład użycia opcjonalnego dziesiętnego parametr:

SELECT STR(123.55, 8, 4) AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 123.5500 |
+----------+

Zauważ, że zwiększyłem wartość długości aby pomieścić miejsca dziesiętne.

Jeśli zmniejszę długość wartość do 6 , rozumiem:

SELECT STR(123.55, 6, 4) AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 123.55   |
+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wymień SQL Server, usuń wszystko po określonym znaku

  2. Jak ustawić sortowanie bazy danych w SQL Server (T-SQL)

  3. Wysyłaj wiadomości e-mail z załącznikami w SQL Server (T-SQL)

  4. Jak włączyć przechwytywanie zmian danych (CDC) w bazie danych w programie SQL Server — samouczek dotyczący programu SQL Server

  5. Entity Framework 6 — zapytania dotyczące czasu