sql >> Database >  >> RDS >> Sqlserver

Hoe de STR()-functie werkt in SQL Server (T-SQL)

In SQL Server is de T-SQL STR() functie retourneert tekengegevens die zijn geconverteerd van numerieke gegevens. De retourwaarde heeft het retourtype varchar .

U geeft de numerieke gegevens op als argument bij het aanroepen van de functie. De functie converteert het vervolgens naar tekengegevens. Er zijn ook twee optionele argumenten die u kunt gebruiken om de lengte en het aantal plaatsen rechts van de komma op te geven.

Syntaxis

De syntaxis gaat als volgt:

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

Waar float_expression is een uitdrukking van benaderende numerieke (float ) gegevenstype met een decimaalteken.

lengte is een optioneel argument dat u kunt gebruiken om de totale lengte op te geven. Dit omvat decimale punt, teken, cijfers en spaties. De standaardwaarde is 10.

decimaal is het aantal plaatsen rechts van de komma. Dit kan een maximale waarde van 16 zijn. Als er meer zijn, wordt het afgekapt tot 16.

Voorbeeld 1 – Basisgebruik

Hier is een voorbeeld van hoe het werkt:

SELECT STR(123.45) AS Result;

Resultaat:

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

Voorbeeld 2 – Afronding

Standaard wordt het getal afgerond op een geheel getal. Als we de invoer uit het vorige voorbeeld aanpassen (bijv. het fractionele deel vergroten van .45 tot .55 ) krijgen we het volgende:

SELECT STR(123.55) AS Result;

Resultaat:

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

Voorbeeld 3 – Lengte

Bij gebruik van de optionele lengte parameter, moet de waarde groter zijn dan of gelijk zijn aan het deel van het getal vóór de komma plus het teken van het getal (indien aanwezig).

Het volgende is bijvoorbeeld prima, omdat lengte groter is dan het deel van het getal vóór de komma:

SELECT STR(123.55, 4) AS Result;

Resultaat:

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

Het volgende voorbeeld laat echter zien wat er gebeurt als de lengte waarde is te klein:

SELECT STR(123.55, 2) AS Result;

Resultaat:

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

Merk ook op dat lengte bepaalt de lengte van de uitvoer en omvat de komma, het teken, de cijfers en spaties. De standaardlengte is 10.

Hier is een voorbeeld om het verschil in uitvoer te demonstreren, afhankelijk van de waarde van de lengte argument:

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

Resultaat:

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

Voor een andere manier om dit te demonstreren, trim ik in het volgende voorbeeld de uitvoer met behulp van de TRIM() functie (en vergelijk het met de niet-getrimde versie):

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

Resultaat:

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

Voorbeeld 4 – decimalen

Hier is een voorbeeld van het gebruik van de optionele decimaal parameter:

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

Resultaat:

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

Merk op dat ik de waarde voor length . heb verhoogd om plaats te bieden aan de decimalen.

Als ik de lengte reduce verklein waarde tot 6 , ik krijg dit:

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

Resultaat:

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

  1. Toegang tot de webservice vanuit de opgeslagen procedure van Oracle

  2. Tips voor het opslaan van PostgreSQL-back-ups op Google Cloud (GCP)

  3. Wat zijn de verschillende manieren om gegevens in de SQL Server-tabel in te voegen - SQL Server / TSQL-zelfstudie, deel 100

  4. SQL INSERT INTO… SELECT Voorbeelden