sql >> Databáze >  >> RDS >> Sqlserver

Jak funguje funkce STR() v SQL Server (T-SQL)

V SQL Server T-SQL STR() funkce vrací znaková data převedená z číselných dat. Návratová hodnota má návratový typ varchar .

Číselná data zadáte jako argument při volání funkce. Funkce je poté převede na znaková data. Existují také dva volitelné argumenty, které můžete použít k určení délky a počtu míst napravo od desetinné čárky.

Syntaxe

Syntaxe vypadá takto:

STR ( float_expression [ , délka [ , desítkové ] ] )

Kde float_expression je výraz přibližné číselné hodnoty (float ) datový typ s desetinnou čárkou.

délka je volitelný argument, který můžete použít k určení celkové délky. To zahrnuje desetinnou čárku, znaménko, číslice a mezery. Výchozí hodnota je 10.

desítkové je počet míst napravo od desetinné čárky. Maximální hodnota může být 16. Pokud je více, bude zkrácena na 16.

Příklad 1 – Základní použití

Zde je příklad, jak to funguje:

SELECT STR(123.45) AS Result;

Výsledek:

+-------------+| Výsledek ||-------------|| 123 |+------------+

Příklad 2 – Zaokrouhlení

Ve výchozím nastavení je číslo zaokrouhleno na celé číslo. Pokud upravíme vstup z předchozího příkladu (např. zvětšíme zlomkovou část z .45 na .55 ) dostaneme následující:

SELECT STR(123.55) AS Result;

Výsledek:

+-------------+| Výsledek ||-------------|| 124 |+------------+

Příklad 3 – Délka

Při použití volitelné délky jeho hodnota by měla být větší nebo rovna části čísla před desetinnou čárkou plus znaménko čísla (pokud existuje).

Například následující je v pořádku, protože délka je větší než část čísla před desetinnou čárkou:

SELECT STR(123,55; 4) AS Result;

Výsledek:

+-----------+| Výsledek ||-----------|| 124 |+----------+

Následující příklad však ukazuje, co se stane, když je délka hodnota je příliš malá:

SELECT STR(123,55; 2) AS Result;

Výsledek:

+-----------+| Výsledek ||-----------|| ** |+----------+

Všimněte si také, že délka určuje délku výstupu a zahrnuje desetinnou čárku, znaménko, číslice a mezery. Výchozí délka je 10.

Zde je příklad demonstrující rozdíl ve výstupu v závislosti na hodnotě length argument:

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

Výsledek:

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

Pro další způsob, jak to demonstrovat, v následujícím příkladu oříznu výstup pomocí TRIM() funkce (a porovnejte ji s neoříznutou verzí):

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

Výsledek:

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

Příklad 4 – desetinná místa

Zde je příklad použití volitelného desítkového parametr:

SELECT STR(123,55; 8; 4) AS Výsledek;

Výsledek:

+-----------+| Výsledek ||-----------|| 123 5500 |+----------+

Všimněte si, že jsem zvýšil hodnotu pro length aby se vešly desetinná místa.

Pokud zkrátím délku hodnotu na 6 , chápu toto:

SELECT STR(123,55; 6; 4) AS Výsledek;

Výsledek:

+-----------+| Výsledek ||-----------|| 123,55 |+----------+

  1. Volání členské funkce execute() na boolean in

  2. Instalace rozšíření PostgreSQL do všech schémat

  3. Jaký je nejlepší způsob, jak uniknout neformátovým znakům v to_char společnosti Oracle?

  4. 5 kroků k vytvoření marketingové databáze