天天看點

MSSQL 中将數字轉換為字元串STR

STR

由數字資料轉換來的字元資料。

文法

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

參數

float_expression

是帶小數點的近似數字 (float) 資料類型的表達式。

length

是總長度,包括小數點、符号、數字或空格。預設值為 10。

decimal

是小數點右邊的位數。

傳回類型

char

注釋

如果為 STR 提供 length 和 decimal 參數值,則這些值應該是正數。在預設情況下或者小數參數為 0 時,數字四舍五入為整數。指定長度應該大于或等于小數點前面的數字加上數字元号(若有)的長度。短的 float_expression 在指定長度内右對齊,長的 float_expression 則截斷為指定的小數位數。例如,STR(12,10) 輸出的結果是 12,在結果集内右對齊。而 STR(1223, 2) 則将結果集截斷為 **。可以嵌套字元串函數。

說明   若要轉換為 Unicode 資料,請在 CONVERT 或 CAST 轉換函數内使用 STR。

示例

A. 使用 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)
           

B. 使用 STR 和 CONVERT 函數

下例比較 STR 和 CONVERT 的結果。

SELECT STR(3.147) AS 'STR',
       STR(3.147, 5, 2) AS '2 decimals',
       STR(3.147, 5, 3) AS '3 decimals'
GO
           

下面是結果集:

STR        2 decimals 3 decimals 
---------- ---------- ---------- 
         3  3.15      3.147      

(1 row(s) affected)

-- Use CONVERT.
SELECT CONVERT(char(1), 3.147) AS 'CHAR(1)',
       CONVERT(char(3), 3.147) AS 'CHAR(3)',
       CONVERT(char(5), 3.147) AS 'CHAR(5)'
GO
           

下面是結果集:

CHAR(1) CHAR(3) CHAR(5) 
------- ------- ------- 
(null)  (null)  3.147   

(1 row(s) affected)
           

繼續閱讀