Oracle与MySQL的转化差异

来源:互联网 发布:专卖店软件泰安 编辑:程序博客网 时间:2024/04/29 21:33

1、nvl函数。

       Oracle 中 : nvl (join_count , 0)

       MySQL中:if(join_count is null,'0',join_count) 


2、字符串连接。

      Oracle中用“||”进行连接;MySQL中用CONCAT进行连接。


3、系统时间。

     Oracle中:select sysdate from dual

     MySQL中:select sysdate() from dual 


4、DECODE函数。

     MySQL中:if(HANDLE_STATUS=0,REISSUED_COUNT,REISSUED_COUNT+1) 

     Oracle中:DECODE(HANDLE_STATUS,0,REISSUED_COUNT,REISSUED_COUNT+1)

                         


5、序列问题。

     Oracle中存在序列,MySQL中不存在序列


6、日期格式转换。

    MySQL中:SELECT  DATE_FORMAT(NOW(),'%Y-%m-%d')  FROM   DUAL  (注意Y,m,d的大小写)

                         SELECT TIME_FORMAT(NOW(),'%H-%i-%S') FROM DUAL

    Oracle中:SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL

                         SELECT TO_CHAR(SYSDATE,'HH24-MI-SS') FROM DUAL


7、增加一个月。

     MySQL中:SELECT DATE_ADD('2000-01-01',INTERVAL 1 MONTH)

     ORACLE中:SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20000101','YYYYMMDD'),1),'YYYY-MM-DD') FROM DUAL


8、截取字符串。

     MySQL中:SELECT MID('abcdefg',2,3)  FROM  DUAL; 

     ORACLE中:SELECT SUBSTR(‘abcdefg’,2,3) FROM DUAL;


9、在MySQL中from 后的表如果是(select.......)这种,那么后面必须有别名


10、MySQL的GROUP BY语句可以SELECT没有被分组的字段,如SELECT ID,NAME,AGE FROM A GROUP BY AGE这样。但是在ORALCE中是会报错的。这个取出的ID,NAME所在的行是每个分组中的第一行数据。





未完待续。。。

     

  

0 0
原创粉丝点击