Home [SQL] 操作字串 (數值轉換字串 Str())
Post
Cancel

[SQL] 操作字串 (數值轉換字串 Str())

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 百萬元

MSDN - STR (Transact-SQL)

This post is licensed under CC BY 4.0 by the author.