oracle: 使用nvl(exp1,exp2) 函式
select nvl('',1) from dual; -- returns:1
select nvl(null,1) from dual; -- returns: 1
mysql:使用ifnull(exp1,exp2)函式
select ifnull(null,1); -- returns: 1
select ifnull('',1); -- returns: ''
操作
oracle
mysql
轉字元to_char(exp,『yyyy-mm-dd』)
date_format(exp,』%y-%m-%d』)
轉字元to_char(exp,『yyyy-mm-dd hh:mm:ss』)
date_format(exp,』%y-%m-%d %t』)
轉時間to_date(exp,『yyyy-mm-dd』)
str_to_date(exp,』%y-%m-%d』)
轉時間to_date(exp,『yyyy-mm-dd hh24:mi:ss』)
str_to_date(exp,』%y-%m-%d %t』)
取月份to_char(exp,『mm』)
month(exp)
取時間sysdate
now()
日期相減
date1 - date2
datediff(date1,date2)
oracle: 可使用 || 符號,可用concat(exp1,exp2)函式
select '1'||'2' from dual; -- returns '12'
select concat('1','2') from dual; -- returns '12'
select concat('1','2','3') from dual; -- returns error 引數個數無效
mysql: 只能用concat(exp1,exp2,...), || 符號在mysql表示 或 ,mysql的concat函式可有n個引數,oracle只有兩個引數
select concat('1','2') from dual; -- returns '12'
select concat('1','2','3') from dual; -- returns '123'
oracle:
oracle自帶有表連線的(+)功能,也可用left(right) join on
mysql:
mysql 沒有(+)使用功能,只能用left(right) join on,否則就會報錯
oracle : 換行符是chr(10),回車符是chr(13)
mysql : 換行符是char(10),回車符是char(13)
oracle : order by 預設排序時,空值在下;mysql空值在上。
mysql和oracle分頁語句
分頁是常見的提高查詢效率的方法,因此熟練掌握不同資料庫的分頁語句很重要 mysql的分頁如下 select from table name where 1 1 limit start,end 最好換成需要查詢的字段,不要用 start 頁數 從0開始計算 end 每頁條數 oracle 的分頁如下 ...
ORACLE語句優化 上
1.選擇最有效率的表名順序 oracle的解析器按照從右到左的順序處理from子句中的表名,from子句中寫在最後的表 基礎表 driving table 將被最先處理,在from子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。如果有3個以上的表連線查詢,那就需要選擇交叉表 inte...
oracle 語句轉mysql語句
oracle to date 06 08 2019 16 20 50 dd mm yyyy hh24 mi ss mysql str to date 06 08 2019 16 20 50 d m y h i s mysql 類似to char to date 函式 mysql日期和字元相互轉換方法...