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