由數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換來(lái)的字符數(shù)據(jù)。
STR ( float_expression [ , length [ , decimal ] ] )
float_expression
是帶小數(shù)點(diǎn)的近似數(shù)字 (float) 數(shù)據(jù)類型的表達(dá)式。不要在 STR 函數(shù)中將函數(shù)或子查詢用作 float_expression。
length
是總長(zhǎng)度,包括小數(shù)點(diǎn)、符號(hào)、數(shù)字或空格。默認(rèn)值為 10。
decimal
是小數(shù)點(diǎn)右邊的位數(shù)。
char
如果為 STR 提供 length 和 decimal 參數(shù)值,則這些值應(yīng)該是正數(shù)。在默認(rèn)情況下或者小數(shù)參數(shù)為 0 時(shí),數(shù)字四舍五入為整數(shù)。指定長(zhǎng)度應(yīng)該大于或等于小數(shù)點(diǎn)前面的數(shù)字加上數(shù)字符號(hào)(若有)的長(zhǎng)度。短的 float_expression 在指定長(zhǎng)度內(nèi)右對(duì)齊,長(zhǎng)的 float_expression 則截?cái)酁橹付ǖ男?shù)位數(shù)。例如,STR(12,10) 輸出的結(jié)果是 12,在結(jié)果集內(nèi)右對(duì)齊。而 STR(1223, 2) 則將結(jié)果集截?cái)酁?**??梢郧短鬃址瘮?shù)。
說(shuō)明 若要轉(zhuǎn)換為 Unicode 數(shù)據(jù),請(qǐng)?jiān)?CONVERT 或 CAST 轉(zhuǎn)換函數(shù)內(nèi)使用 STR。
下例將包含五個(gè)數(shù)字和一個(gè)小數(shù)點(diǎn)的表達(dá)式轉(zhuǎn)換為有六個(gè)位置的字符串。數(shù)字的小數(shù)部分四舍五入為一個(gè)小數(shù)位。
SELECT STR(123.45, 6, 1)
GO
下面是結(jié)果集:
------
123.5
(1 row(s) affected)
當(dāng)表達(dá)式超出指定長(zhǎng)度時(shí),字符串為指定長(zhǎng)度返回 **。
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)文章