分享方式:


STR (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲

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

Transact-SQL 語法慣例

語法

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

引數

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)