2020年6月2日 星期二

[字串函數]取得部分字串

取得字串指定運算式中的特定段落
指令說明:
ORACLE: 提供SUBSTRSUBSTRB函數。
語法
說明
SUBSTR(str, i [,n])
字串(str)從起始位置(i)起取得指定n個字元之子字串。
SUBSTRB(str, i [,n])
字串(str)從起始位置(i)起取得指定nbyte之子字串。

MSSQL: 提供SUBSTRINGLEFTRIGHT等三種函數。
語法
說明
SUBSTRING(str, i, n)
字串(str)從起始位置(i)起取得指定n個字元之子字串。
LEFT(str, n)
字串(str)左側起取得n個字元之子字串。
RIGHT(str, n)
字串(str)右側起取得n個字元之子字串

SUBSTR(ING)指令比較:
ORACLEMSSQL提供類似函數,由字串(str)由起始位置(i)起取得n個字元
ORACLE
MSSQL
語法
SUBSTR(str, i [,n])
SUBSTRING(str, i, n)
起始位置(i) -負值
ü
(代表字尾起算,由右至左)
û
(不支援負值,無意義)
字元數量(n、長度)
ü
(選擇性參數,如省略代表剩餘所有字元)
ü
(必需指定字完數目)
-    起始位置(i
兩者均可選擇指定搜尋起始位置(i),如忽略則採用預設值1ORACLE允許起始位置為負值,代表由右向左計數
-    字元數量(n、長度)
取得字元數量(n,長度)。ORACLE省略則代表取得完整字串MSSQL為必要參數,如欲達成ORACLE對等語法,可直接將長度設為字元型態最大長度8000即可

範例:

ORACLE
MSSQL
左側取出2個字元
AB
SELECT SUBSTR('ABANDON', 1, 2)
FROM DUAL
SELECT LEFT('ABANDON', 2)
, SUBSTRING('ABANDON', 1, 2)
由第5碼取至字尾
DON
SELECT SUBSTR('ABANDON', 5)
FROM DUAL
SELECT SUBSTRING('ABANDON', 5, 8000)
: 剩餘長度可用字元型態最大長度8000替代
右側取出2個字元
ON
SELECT SUBSTR('ABANDON', -2)
FROM DUAL
SELECT RIGHT('ABANDON', 2)

沒有留言:

張貼留言