iT邦幫忙

DAY 16
2

哇咧~夠了(Oracle SQL)系列 第 13

十六、半形字VS全形字(Oracle SQL 2013/10/01)

  • 分享至 

  • xImage
  •  

所有半形字都有另一個全形字,在Windows可以叫出字元對應表來對照,
那如何運用在SQL上?
查BIG5表,123456789對應羅馬數字ⅠⅡⅢⅣⅤⅥⅦⅧⅨ

其實是連續的字,所以只要用SQL就可以把數字直接轉換成羅馬數字!除了0
也就是A2B9, A2BA,.....A2C2

而數字1~9對應的ASCII = 49 ~ 57

所以從此下手

  1  select  rownum "N", chr(162)||chr(rownum + 185-1) roma_w
  2  from all_tables
  3* where rownum <= 9
SQL> /

        N RO
--------- --
        1 Ⅰ
        2 Ⅱ
        3 Ⅲ
        4 Ⅳ
        5 Ⅴ
        6 Ⅵ
        7 Ⅶ
        8 Ⅷ
        9 Ⅸ

選取了 9 列

關鍵在全形字是由兩個位元組成,分開處兩個字後再結合即可產生全形字。
A2(16位元) = 16*10+2=162
B9(16位元) = 11*16+9=185
chr(162) || chr(185) = A2B9

同樣處理方式可對待這些連續編碼的字型
全形數字、
英文大小寫字、
注音符號、
▁▂▃▄▅▆▇█
▏▎▍▌▋▊▉▉

[開發技術組]全文閱讀
http://ithelp.ithome.com.tw/ironman6/player/yafuu168/dev/1

[鐵人人生組]全文閱讀
http://ithelp.ithome.com.tw/ironman6/player/yafuu168/life/1


上一篇
十二、靈異事件(Oracle SQL 2013/09/27)
下一篇
十七、一定要頑抗嗎?(Oracle SQL 2013/10/02)
系列文
哇咧~夠了(Oracle SQL)28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言