Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410603
  • 博文数量: 155
  • 博客积分: 2590
  • 博客等级: 少校
  • 技术积分: 2161
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 09:33
文章分类

全部博文(155)

文章存档

2015年(1)

2014年(2)

2013年(55)

2012年(97)

分类: 数据库开发技术

2012-12-07 11:23:08

这两天要把一个系统从oracle上移植到mysql上,顺便简单整理一下两者语法的不同
 
1,decode
mysql中没有decode,可以使用case when语句代替,oracle也支持case when语句,看来以后为了移植方便还是使用case when比较好。
Sql代码  
select NAME,  
 case name  
        when 'sam' then 'yong'  
        when 'lee' then 'handsome'  
        else 'good' end  
from lee;  
下面是同一条sql,decode与case when比较:
 
Sql代码  
sum(decode(sign(similarity-${param1})+sign(similarity-${param2}),0,1,-1,1,0)) as sus_tort_count  
sum(case sign(similarity-${param1})+sign(similarity-${param2}) when 0 then 1   when -1 then 1 else 0 End   
 
2.分页代码:
oracle中分页代码使用rownum,具体参见:http://qingfeng825.iteye.com/blog/779462
Sql代码  
----oracle排序写法     
SELECT * FROM (      
SELECT list.*, rownum as RNUM FROM (      
SELECT *   FROM CIP_Test_User                                                        
ORDER BY ID desc )      
list WHERE ROWNUM <   11 ) WHERE RNUM >=1     
1和11都代表行号
mysql分页使用limit
Java代码  
----mysql排序写法      
SELECT *   FROM CIP_Test_User                                                        
ORDER BY ID desc  
limit 1,10    
 
1代表偏移量,10代表要取出来的记录个数
3.数字转字符串
     mysql:  concat(site_id,'')
     oracle:to_char(site_id)
 
4.取当前日期(mysql 要加括号)
    mysql:now(),sysdate() 具体参见:http://blog.sina.com.cn/s/blog_6d39dc6f0100m7eo.html
    oracle:sysdate

行业门户()文章,希望大家可以留言建议

阅读(940) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~