STR (Transact-SQL)

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database 是Azure SQL 受控執行個體 是Azure Synapse Analytics 是平行處理資料倉儲

傳回從數值資料轉換而來的字元資料。 字元資料為靠右對齊,且具有指定的長度和小數點有效位數。

主題連結圖示 Transact-SQL 語法慣例

語法

STR ( float_expression [ , length [ , decimal ] ] )  

注意

若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

float_expression
這是含小數點的近似數值 (float) 資料類型的運算式。

length
這是總長度。 其中包括小數點、正負號、數字和空格。 預設值為 10。

decimal
這是小數點右方的位數。 decimal 必須小於或等於 16。 如果 decimal 大於 16,則結果就會截斷為小數點右方的十六位數。

傳回型別

varchar

備註

如果提供的話,STR 的 lengthdecimal 參數值應該是正數。 根據預設,如果 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)  

另請參閱

CAST 和 CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
字串函數 (Transact-SQL)