Str()
傳回從數值資料轉換而來的字元資料。 字元資料為靠右對齊,且具有指定的長度和小數點有效位數。
語法
str(number, length, decimals)
1
STR ( float_expression [ , length [ , decimal ] ] )
在這語法中:
float_expression是一個數值表達式,其計算結果為帶有小數點的近似數字。length是傳回字串的總長度。它包括小數點,符號,數字和空格。預設情況下,如果跳過不指定它的值,則預設長度為10。如果長度為零,則函數傳回NULL。decimal是要傳回的float_expression小數點右邊的位數。decimal必須小於或等於16。如果大於16,則函數將結果截斷到小數點右邊的16位元。
範例一
將五個位數和小數點組成的數字,轉換成六個位數的字元字串。
數字的小數點後部份會捨入到一個小數位數。
1
SELECT str(123.45, 6, 1) result --123.5
執行結果:
1
2
result
123.5
如果數字超出指定長度時,字串會針對指定字串傳回 **。
1
SELECT str(123.45, 2, 2) result --**
執行結果:
1
2
result
**
範例二:
顯示商品名稱與販賣單價,單價上要加上”元”
1
2
3
--顯示商品名稱與販賣單價,單價上要加上"元"
select 商品名稱, str(販賣單價)+'元' "販賣單價"
from 商品清單
執行結果:
1
2
3
4
5
6
7
8
9
10
11
商品名稱 販賣單價
桌上型電腦 180000元
筆記型電腦 270000元
17吋螢幕 50000元
19吋螢幕 95000元
15吋液晶螢幕 120000元
數位相機 NULL
印表機 25000元
掃描器 30000元
HUB 7000元
網路卡 20000元
範例三:
以百萬單位來顯示商品別販賣業績的總計
1
2
3
4
5
--以百萬單位來顯示商品別販賣業績的總計
select B.商品名稱, str(round(sum(B.販賣單價*A.數量)/1000000,2),10,2)+' 百萬元' "販賣業績(百萬元)"
from 販賣資料 A
join 商品清單 B on A.商品ID = B.商品ID
group by B.商品名稱
執行結果:
1
2
3
4
5
6
7
8
9
10
商品名稱 販賣業績(百萬元)
15吋液晶螢幕 0.72 百萬元
17吋螢幕 0.25 百萬元
19吋螢幕 0.29 百萬元
HUB 0.04 百萬元
印表機 0.03 百萬元
桌上型電腦 1.08 百萬元
掃描器 0.03 百萬元
筆記型電腦 2.16 百萬元
網路卡 0.04 百萬元