STR (Transact-SQL)
傳回從數值資料轉換而來的字元資料。
語法
STR ( float_expression [ , length [ , decimal ] ] )
引數
float_expression
這是含小數點的近似數值 (float) 資料類型的運算式。length
這是總長度。 其中包括小數點、正負號、數字和空格。 預設值是 10。decimal
這是小數點右方的位數。 decimal 必須小於或等於 16。 如果 decimal 大於 16,則結果就會截斷為小數點右方的十六位數。
傳回類型
varchar
備註
如果提供的話,STR 的 length 和 decimal 參數值應該是正數。 根據預設,如果 decimal 參數是 0,這個數字會捨入到整數。 指定的長度應該大於或等於小數點前面的數字部分,再加上數字的正負號 (如果有的話)。 在指定長度中,短的 float_expression 會靠右對齊,長的 float_expression 會在指定的小數位數截斷。 例如,STR(12**,10) 所產生的結果是 12。 這會在結果集中靠右對齊。 不過,STR(1223,**2) 會將結果集截斷為 **。 字串函數可以是巢狀函數。
[!附註]
若要轉換成 Unicode 資料,請在 CONVERT 或 CAST 轉換函數內使用 STR。
範例
下列範例會將五個位數和小數點組成的運算式轉換成六個位數的字元字串。 數字的小數點後部份會捨入到一個小數位數。
SELECT STR(123.45, 6, 1);
GO
以下為結果集:
------
123.5
(1 row(s) affected)
當運算式超出指定長度時,字串會針對指定字串傳回 **。
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)