2020年6月3日 星期三

[字串函數]字串填補(Pad)

在字串左側或右側以特定字元集(set)填補至定長度(n)

指令說明:
ORACLE: 提供LPADRPAD函數,可指定於在字串左側或右側以特定字元集(set)填補至指定字元數(n,長度)如未指定填補字元集,預設值為空白。其語法如下:
語法
說明
LPAD(str, n [,set])
字串(str)左側以特定字元集(set)填補至指定字元數(n,長度)
RPAD(str, n [,set])
字串(str)右側以特定字元集(set)填補至指定字元數(n,長度)
範例: 字串「123」以左補「0」至長度5,及右補空白至長度5
SELECT LPAD('123', 5, '0')
, RPAD('123', 5)
FROM DUAL
------------ --------
結果: 00123   [123  ]
(中括號僅為清楚呈現)

MSSQL
語法
說明
REPLICATE(str, n)
傳回重複產生n個特定字元(str)
SPACE(n)
傳回n個空白字元,為REPLICATE函數特例。
FORMATMESSAGE('%[-][0]ns', str)
(2016)
訊息格式化,可左側/右側填補空白或「0」字元至指定長度(n:1~9, 0與空白為填補字元, 負號代表右側填補)
範例: 產生5個字元「0」的字串及5個空白
SELECT REPLICATE('0', 5)
, SPACE(5)
     , FORMATMESSAGE('%5s', '')
------------ -------- ---------
結果: 00000   [     ]  [     ]
(中括號僅為清楚呈現)

範例:

ORACLE
MSSQL
左側補0至長度5
00123
SELECT LPAD('123', 5, '0')
FROM DUAL
SELECT RIGHT(REPLICATE('0', 5) + '123', 5 )
     , FORMATMESSAGE ('%05s', '123')
右側補空白至長度5
[ABC  ]
SELECT RPAD('ABC', 5)
FROM DUAL
SELECT LEFT('ABC' + SPACE(5) , 5)
     , FORMATMESSAGE('%-5s', 'ABC')
: 負號(-)代表右填補
本文中參考其他文章函數,可延伸閱讀:
函數
資料庫
延伸閱讀
FORMATMESSAGE
MSSSQL2016
RIGHT / LEFT
MSSQL

沒有留言:

張貼留言