sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan fungerer STR()-funktionen i SQL Server (T-SQL)

I SQL Server, T-SQL STR() funktion returnerer tegndata konverteret fra numeriske data. Returværdien har en returtype varchar .

Du angiver de numeriske data som et argument, når du kalder funktionen. Funktionen konverterer den derefter til tegndata. Der er også to valgfrie argumenter, som du kan bruge til at angive længden og antallet af pladser til højre for decimaltegnet.

Syntaks

Syntaksen ser sådan ud:

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

Hvor float_expression er et udtryk for tilnærmet numerisk (float ) datatype med et decimaltegn.

længde er et valgfrit argument, du kan bruge til at angive den samlede længde. Dette inkluderer decimaltegn, tegn, cifre og mellemrum. Standard er 10.

decimal er antallet af pladser til højre for decimaltegnet. Dette kan være en maksimal værdi på 16. Hvis mere end det, afkortes det til 16.

Eksempel 1 – Grundlæggende brug

Her er et eksempel på, hvordan det virker:

SELECT STR(123.45) AS Result;

Resultat:

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

Eksempel 2 – Afrunding

Som standard er tallet afrundet til et heltal. Hvis vi justerer input fra det foregående eksempel (forøg f.eks. brøkdelen fra .45 til .55 ) får vi følgende:

SELECT STR(123.55) AS Result;

Resultat:

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

Eksempel 3 – Længde

Når du bruger den valgfri længde parameter, skal dens værdi være større end eller lig med den del af tallet før decimaltegnet plus tallets tegn (hvis nogen).

For eksempel er følgende fint, fordi længde er større end delen af ​​tallet før decimaltegnet:

SELECT STR(123.55, 4) AS Result;

Resultat:

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

Det følgende eksempel viser dog, hvad der sker, når længden værdien er for lille:

SELECT STR(123.55, 2) AS Result;

Resultat:

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

Bemærk også, at længde bestemmer længden af ​​output og inkluderer decimaltegn, fortegn, cifre og mellemrum. Standardlængden er 10.

Her er et eksempel for at demonstrere forskellen i output afhængigt af værdien af ​​længden argument:

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

Resultat:

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

For en anden måde at demonstrere dette på, trimmer jeg i det følgende eksempel outputtet ved hjælp af TRIM() funktion (og sammenlign den med den ikke trimmede version):

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

Resultat:

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

Eksempel 4 – Decimaler

Her er et eksempel på brug af den valgfri decimal parameter:

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

Resultat:

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

Bemærk, at jeg øgede værdien for længde for at rumme decimalerne.

Hvis jeg reducerer længden værdi til 6 , jeg forstår dette:

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

Resultat:

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

  1. Bruger MariaDB

  2. En indekseret visningsfejl med skalære aggregater

  3. Sådan tjekker du MySQL-versionen

  4. Sådan får du sidste 12 måneders data i MySQL