1. 程式人生 > >MSSQL 中將數字轉換為字串

MSSQL 中將數字轉換為字串

STR

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

語法

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

引數

float_expression

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

length

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

decimal

是小數點右邊的位數。

返回型別

char

註釋

如果為 STR 提供 lengthdecimal 引數值,則這些值應該是正數。在預設情況下或者小數引數為 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)