SQL道場 文字列関数 STR関数

この記事は約3分で読めます。

数値を文字列に変換する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関数サンプル実行結果
タイトルとURLをコピーしました