拼接字串
1.oracle 字串拼接:||
select '1' || '2' from dual;
2.MySQL 字串拼接:concat(a,b)
select concat('1','2') from dual;
截取字串
1.MySQL
函式:SUBSTRING或者SUBSTR
1.1語法
位置
SUBSTRING(string,position);
SUBSTRING(string FROM position);
位置和長度
SUBSTRING(string,position,length);
SUBSTRING(string FROM position FOR length);
1.2下標
| - | H | e | l | l | 0 | W | o | r | l | d | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 正數 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 負數 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
1.3 示例詳情
位置
position>0,從position(包含)開始
SELECT SUBSTRING('Hello World',1);
SELECT SUBSTRING('Hello World' FROM 7);
Hello World
World
position=0回傳空
SELECT SUBSTRING('Hello World',0);
position<0,與position為正時是一樣的,下面的sql的效果是相同的
SELECT SUBSTRING('Hello World',-11);
SELECT SUBSTRING('Hello World' FROM -5);
當position的絕對值>LENGTH(string)時,回傳空,和position=0時一樣
SELECT SUBSTRING('Hello World',12);
SELECT SUBSTRING('Hello World',-12);
位置和長度
position的用法和上面講的是一樣的,下面僅總結length
length>0時回傳length個字符數,當length>string的可截取的長度時,只回傳可截取的長度
SELECT SUBSTRING('Hello World',1,5);
SELECT SUBSTRING('Hello World',6,20);
Hello
World
length<=0時回傳空
SELECT SUBSTRING('Hello World',1,0);
SELECT SUBSTRING('Hello World',1,-20);
類似于下面的效果
SELECT SUBSTRING('Hello World',6,20);
SELECT SUBSTRING('Hello World' FROM 6 FOR 20);
通過LENGTH查看字串的長度驗證(當length>string的可截取的長度時)
SELECT LENGTH(SUBSTRING('Hello World' FROM 6 FOR 20));
結果為6
2.Oracle
函式:SUBSTR
和MySQL區別是沒有SUBSTRING
2.1語法
位置
SUBSTR(string,position);
SUBSTR(string FROM position);
位置和長度
SUBSTR(string,position,length);
SUBSTR(string FROM position FOR length);
2.2下標
| - | H | e | l | l | 0 | W | o | r | l | d | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 正數 | 0或1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 負數 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
位置
與MySQL一樣,position>0和position<0時是一樣的效果,參照上面的下標對應即可,不同的是,position=0和position=1的效果是一樣的,
下面三個sql效果一樣
SELECT SUBSTR('Hello World',0) FROM DUAL;
SELECT SUBSTR('Hello World',1) FROM DUAL;
SELECT SUBSTR('Hello World',-11) FROM DUAL;
Hello World
當position的絕對值>LENGTH(string)時,回傳[NULL]
SELECT SUBSTR('Hello World',12) FROM DUAL
SELECT SUBSTR('Hello World',-12) FROM DUAL;
[NULL]
位置和長度
position的用法和上面講的是一樣的,下面僅總結length
length>0時回傳length個字符數,當length>string的可截取的長度時,只回傳可截取的長度,這點和MySQL相同
SELECT SUBSTR('Hello World',1,5) FROM DUAL;
SELECT SUBSTR('Hello World',6,20) FROM DUAL;
Hello
World
length<=0時回傳[NULL],這點和MySQL不同
SELECT SUBSTR('Hello World',1,0) FROM DUAL;
SELECT SUBSTR('Hello World',6,-20) FROM DUAL;
[NULL]
總結
- 1、 MySQL函式為SUBSTRING 或 SUBSTR,Oracle只有SUBSTR
- 2、 position=0時MySQL回傳空,而Oracle和position=1時一樣
- 3、 當position的絕對值>LENGTH(string)時和length<=0時,MySQL回傳空,而Oracle回傳[NULL]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/26918.html
標籤:其他
