SQL道場 文字列関数 STR関数

数値を文字列に変換するSTR関数について記載しています。

対応データベースSQL Server Access

STR関数の文法

SELECT STR(変換する数値,変換後の文字列長,小数点行数) FROM テーブル
SELECT STR(変換する数値) FROM テーブル
引数変換する数値数値型 任意の数値。
返値文字型 数値の文字列
引数変換する数値小数点付きの概数型 (float) の式を指定します。
変換後の文字列長全体の長さを指定します。 これには小数点、符号、数字、空白文字も含まれます。 既定値は 10 です。
小数点行数小数点以下の桁数を指定します。 
decimal は 16 以下である必要があります。 
decimal に 16 を超える値を指定した場合、結果は小数点以下 16 桁に切り捨てられます。
返値文字型(varchar) 数値の文字列

STR関数は指定された数値を文字列に変換します。文字データは右揃えで、SQL Serverでは変換後の文字列長と小数点行数を指定可能です。また、数値データの桁数が変換後の文字列長を超える場合には「*(アスタリスク)」に変換されます。

Accessでは変換する数値のみ指定可能です。

STR で length パラメーターと decimal パラメーターを指定する場合は、正の値を指定する必要があります。 数値は、既定では整数に丸められます。小数点以下桁数に 0 が指定された場合も同様です。 指定する長さは、その数字の小数点より前の桁数に、符号があればその符号部分を加えた数以上にする必要があります。 短い float_expression は、指定された長さで右揃えされ、長い float_expression は、指定された小数点以下桁数に切り捨てられます。 たとえば、STR(12, 10) の結果は 12 になります。 これは結果セットの中で右揃えされます。 一方、STR(1223, 2) と指定すると、結果は切り捨てられて ** になります。 文字列関数は入れ子にすることができます。

https://learn.microsoft.com/ja-jp/sql/t-sql/functions/str-transact-sql?view=sql-server-ver16

実行例

SQLServerの実行例

/* 数値を文字列に変換するサンプル */
SELECT 
      PRICE
	  ,STR(PRICE)
  FROM [testdb].[dbo].[WORK]
  ;
STR関数サンプル実行結果

5 つの数字と小数点で構成される式を、6 桁の文字列に変換します。 値の小数部は、小数点以下 1 桁になるように丸められます。

/* 数値を文字列に変換するサンプル */
SELECT STR(123.45, 6, 1); 
STR関数サンプル実行結果

式が指定した長さを超えた場合、STR では ** が指定の長さだけ返されます。

/* 数値を文字列に変換するサンプル */
SELECT STR(123.45, 2, 2);  
STR関数サンプル実行結果