由數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換來的字符數(shù)據(jù)。
STR ( float_expression [ , length [ , decimal ] ] )
float_expression
是帶小數(shù)點的近似數(shù)字 (float) 數(shù)據(jù)類型的表達(dá)式。不要在 STR 函數(shù)中將函數(shù)或子查詢用作 float_expression。
length
是總長度,包括小數(shù)點、符號、數(shù)字或空格。默認(rèn)值為 10。
decimal
是小數(shù)點右邊的位數(shù)。
char
如果為 STR 提供 length 和 decimal 參數(shù)值,則這些值應(yīng)該是正數(shù)。在默認(rèn)情況下或者小數(shù)參數(shù)為 0 時,數(shù)字四舍五入為整數(shù)。指定長度應(yīng)該大于或等于小數(shù)點前面的數(shù)字加上數(shù)字符號(若有)的長度。短的 float_expression 在指定長度內(nèi)右對齊,長的 float_expression 則截斷為指定的小數(shù)位數(shù)。例如,STR(12,10) 輸出的結(jié)果是 12,在結(jié)果集內(nèi)右對齊。而 STR(1223, 2) 則將結(jié)果集截斷為 **。可以嵌套字符串函數(shù)。
說明 若要轉(zhuǎn)換為 Unicode 數(shù)據(jù),請在 CONVERT 或 CAST 轉(zhuǎn)換函數(shù)內(nèi)使用 STR。
下例將包含五個數(shù)字和一個小數(shù)點的表達(dá)式轉(zhuǎn)換為有六個位置的字符串。數(shù)字的小數(shù)部分四舍五入為一個小數(shù)位。
SELECT STR(123.45, 6, 1)
GO
下面是結(jié)果集:
------
123.5
(1 row(s) affected)
當(dāng)表達(dá)式超出指定長度時,字符串為指定長度返回 **。
SELECT STR(123.45, 2, 2)
GO
下面是結(jié)果集:
--
**
(1 row(s) affected)
即使數(shù)字?jǐn)?shù)據(jù)嵌套在 STR內(nèi),結(jié)果集也是帶指定格式的字符數(shù)據(jù)。
SELECT STR (FLOOR (123.45), 8, 3)
GO
下面是結(jié)果集:
--------
123.000
(1 row(s) affected)
下例比較 STR 和 CONVERT 的結(jié)果。
SELECT STR(3.147) AS 'STR',
STR(3.147, 5, 2) AS '2 decimals',
STR(3.147, 5, 3) AS '3 decimals'
GO
下面是結(jié)果集:
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
下面是結(jié)果集:
CHAR(1) CHAR(3) CHAR(5)
------- ------- -------
(null) (null) 3.147
(1 row(s) affected)
相關(guān)文章