取得字串指定運算式中的特定段落。
指令說明:
ORACLE: 提供SUBSTR、SUBSTRB函數。
語法
|
說明
|
SUBSTR(str, i [,n])
|
字串(str)從起始位置(i)起取得指定n個字元之子字串。
|
SUBSTRB(str, i [,n])
|
字串(str)從起始位置(i)起取得指定n個byte之子字串。
|
語法
|
說明
|
SUBSTRING(str, i,
n)
|
字串(str)從起始位置(i)起取得指定n個字元之子字串。
|
LEFT(str, n)
|
字串(str)自左側起取得n個字元之子字串。
|
RIGHT(str, n)
|
字串(str)自右側起取得n個字元之子字串。
|
SUBSTR(ING)指令比較:
ORACLE及MSSQL提供類似函數,由字串(str)由起始位置(i)起取得n個字元。
ORACLE
|
MSSQL
|
|
語法
|
SUBSTR(str, i [,n])
|
SUBSTRING(str, i, n)
|
起始位置(i)
-負值
|
ü
(代表字尾起算,由右至左)
|
û
(不支援負值,無意義)
|
字元數量(n、長度)
|
ü
(選擇性參數,如省略代表剩餘所有字元)
|
ü
(必需指定字完數目)
|
-
起始位置(i)
兩者均可選擇指定搜尋起始位置(i),如忽略則採用預設值1,ORACLE允許起始位置為負值,代表由右向左計數。
-
字元數量(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)
|
沒有留言:
張貼留言