STR (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
数値データから変換された文字データを返します。 文字データは右揃えで、長さと小数点以下の精度が指定されています。
構文
STR ( float_expression [ , length [ , decimal ] ] )
引数
float_expression
小数点付きの概数型 (float) の式を指定します。
length
全体の長さを指定します。 これには小数点、符号、数字、空白文字も含まれます。 既定値は 10 です。
decimal
小数点以下の桁数を指定します。 decimal は 16 以下である必要があります。 decimal に 16 を超える値を指定した場合、結果は小数点以下 16 桁に切り捨てられます。
戻り値の型
varchar
解説
STR で length パラメーターと decimal パラメーターを指定する場合は、正の値を指定する必要があります。 数値は、既定では整数に丸められます。小数点以下桁数に 0 が指定された場合も同様です。 指定する長さは、その数字の小数点より前の桁数に、符号があればその符号部分を加えた数以上にする必要があります。 短い float_expression は、指定された長さで右揃えされ、長い float_expression は、指定された小数点以下桁数に切り捨てられます。 たとえば、STR(12, 10) の結果は 12 になります。 これは結果セットの中で右揃えされます。 一方、STR(1223, 2) と指定すると、結果は切り捨てられて ** になります。 文字列関数は入れ子にすることができます。
Note
Unicode データに変換するには、CONVERT または CAST 変換関数の中で STR を使用します。
例
次の例では、5 つの数字と小数点で構成される式を、6 桁の文字列に変換します。 値の小数部は、小数点以下 1 桁になるように丸められます。
SELECT STR(123.45, 6, 1);
GO
結果セットは次のとおりです。
------
123.5
(1 row(s) affected)
式が指定した長さを超えた場合、STR では **
が指定の長さだけ返されます。
SELECT STR(123.45, 2, 2);
GO
結果セットは次のとおりです。
--
**
(1 row(s) affected)
STR
の中で数値データが入れ子にされていても、結果は指定した形式の文字データになります。
SELECT STR (FLOOR (123.45), 8, 3);
GO
結果セットは次のとおりです。
--------
123.000
(1 row(s) affected)
参照
CAST および CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
文字列関数 (Transact-SQL)