- 浏览: 768913 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (256)
- ssh (18)
- webservice (8)
- java基础 (38)
- j2EE方方面面 (17)
- 随意涂鸭!呵呵 (2)
- 数据库 (22)
- work (10)
- XML与XML解析 (9)
- 测试 (2)
- sso (1)
- ldap (6)
- java 模板技术 (4)
- 版本管理 (1)
- 每日小点滴 (26)
- javascript (26)
- Jakarta Commons (2)
- css (6)
- 设计 (3)
- Eclipse插件开发 (3)
- BAP (3)
- web控件 (2)
- java加密解密 (4)
- 调优 (6)
- 界面技术 (3)
- java多线程 (6)
- 互联网 (2)
- 日志管理 (4)
- java调度 (3)
- rest (0)
- Python (2)
- mobile (2)
- 2016的故事 (4)
- Docker (1)
- NOSQL_Hadoop (0)
最新评论
-
promiseloney:
这个女程序员厉害了。。。
JVM调优:GC 参数 -
zxjlwt:
可以通过WebService上传一个文件吗?素人派http:/ ...
webservice传送XML大小估算 -
liaoshaoyang:
写的不错嘛 可以做参考
权限管理设计一 -
aaaaaaaaabaas:
谢谢,对我有帮助
Apache Commons Configuration使用入门 -
Jack_Wilshere:
com.smartdot.pdm.business.corp. ...
java导出txt
这两天要把一个系统从oracle上移植到mysql上,顺便简单整理一下两者语法的不同
-
decode
mysql中没有decode,可以使用case when语句代替,oracle也支持case when语句,看来以后为了移植方便还是使用case when比较好。
select NAME, case name when 'sam' then 'yong' when 'lee' then 'handsome' else 'good' end from lee;
下面是同一条sql,decode与case when比较:
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
----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
----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
5.触发器的不同,下面是两个相同功能的触发器
CREATE TRIGGER `IMS_EVIDENCE_UPDATE_TRIGGER` BEFORE UPDATE ON `bas_page_evidence` FOR EACH ROW BEGIN if ((NEW.WEB_IMAGE IS NOT NULL AND OLD.WEB_IMAGE IS NULL) OR(NEW.WEB_URL_IMAGE IS NOT NULL AND OLD.WEB_URL_IMAGE IS NULL) OR(NEW.HTML_SNAP IS NOT NULL AND OLD.HTML_SNAP IS NULL)) then set new.Evidence_Done_Count=new.Evidence_Done_Count+1; if(new.EVIDENCE_DONE_COUNT>=new.EVIDENCE_COUNT) then set new.Evidence_date=sysdate(); if(new.EVIDENCE_STATUS!='4' and old.EVIDENCE_STATUS!='4') then set new.Evidence_status = '3'; end if; update bas_monitor_result set status='5' where status='4' and url_Id=new.url_id; end if; end if; END;
(mysql版本)
CREATE OR REPLACE TRIGGER IMS_EVIDENCE_UPDATE_TRIGGER before UPDATE OF Web_image,Web_url_image,Html_snap ON ims_page_evidence REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW WHEN ((new.Web_image is not null and old.Web_image is null) or(new.Web_url_image is not null and old.Web_url_image is null) or(new.Html_snap is not null and old.Html_snap is null)) BEGIN :new.Evidence_Done_Count := :old.Evidence_Done_Count+1; if :old.Evidence_Done_Count+1 >= :old.Evidence_Count then :new.Evidence_date := sysdate; if :old.Evidence_status !='4' and :new.Evidence_status !='4' then :new.Evidence_status := '3'; end if; --更新result update ims_monitor_result set status='5' where status='4' and url_Id=:new.url_id; end if; END;
(oracle版本)
几点不同: mysql没有replace trigger, 要修改一个trigger只能是drop trigger后重新建;
oracle在before update 与 on 表名之间可以加入 of 列名1,列名2,列表3,表示当前trigger只对这几列有用,在mysql中没有找到这种写法。
oracle中用到new old都要加: ,mysql不用。
发表评论
-
SQL面试题二
2013-09-03 22:39 1566一道SQL语句面试题,关于group by 表内容: 2 ... -
面试SQL语句
2013-09-03 22:22 10741Get the average salary of e ... -
数据库事务转载基础二:MySQL事务隔离级别详解
2012-06-19 13:01 867SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定 ... -
数据库事务转载基础二:oracle事务隔离级别
2012-06-19 12:57 877Oracle 支持的 2 种事务隔离级别 Read commi ... -
数据库事务转载基础一:oarcle事务
2012-06-19 12:48 1014Oracle事务 2010-11-29 14:22 ... -
数据库实现列值合并为行
2011-10-21 14:17 1171转载自:http://hi.baidu.com/wangz ... -
oracle中使用sys_connect_by_path进行表中行值连接
2011-03-01 12:52 11948一、最原始的表说明 CREATE TABLE DATADIC ... -
oracle rownum 学习
2010-10-09 13:37 2825----oracle排序写法 SELECT * FROM ( ... -
oracle 10 TNSLSNR.EXE 占用了8080端口怎么办
2010-02-20 17:51 3904oracle 10服务一启动 TNSLSNR.exe 会占用8 ... -
解决ora-280000 the account is locked
2010-02-20 16:35 4264测试、运行程序时,一般使用服务器上的oracle服务,2010 ... -
oracle 中的几天后,几年后
2009-08-21 15:52 1760首先,需要记住Oracle里面的日期加减是按照天来计算的 ... -
ob 接oracle10时接不上怎么办?
2009-05-04 16:36 12651、打开BDE Administrator。 ... -
Union使用
2009-02-11 14:55 1108select subjectRecordNo as ... -
oracle中判断一个串中是否包含另一个串
2008-12-31 14:32 2713select decode(INSTR('CORPORATEa ... -
sum结果为null时,如果返回值是int型报错
2008-12-01 16:44 1965select nvl(sum(decode(sta ... -
oracle结构设计
2008-11-10 15:21 1253尽管Oracle系统本身已 ... -
Oracle的rownum原理和使用
2008-11-07 11:20 1237俺程序中用到的rownum分页+排序的实现(有机会仔细研究) ... -
oracle10数据库导入导出问题
2008-07-01 15:02 1712ob7.0 不支持oracle10的导入,只可以导出。 toa ... -
oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询
2008-05-26 15:39 10181今天发现在oracle中的select语句可以用START W ... -
Oracle Discover产品简介
2008-03-03 10:50 4211Oracle Discoverer?是Oracle公司面向De ...
相关推荐
以下代码在MYSQL中测试通过,MSSQL... #mysql执行 select sum(case when c = ‘1’ then A else B end) from tmp #oracle执行 select sum(decode(c,’1′,a,b)) from tmp #普通联合查询 select sum(d) from ( select
decode()方法语法: str.decode(encoding=‘UTF-8’,errors=‘strict’) 参数: encoding – 要使用的编码,如”UTF-8″。 errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。...
DECODE
1 DECODE 中的if-then-else逻辑 在逻辑编程中,经常用到If – Then –Else 进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。
Mysql支持emoji 表情符号 升级编码为UTF8MB4
关于oracle decode函数的用法
avs_decode.rar
decode函数.docx
主要作用:将查询结果翻译成其他值(即以其他形式表现...Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要选择的table中所定义的column,
以下是decode()方法的语法: str.decode(encoding='UTF-8',errors='strict') 参数 encoding — 这是所使用的编码。对于所有的编码方案的列表,请访问:标准编码库 errors — 这可能是给定一个不同的错误处理机制...
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。
Oracle中Decode()函数的有关用法Oracle中Decode()函数的有关用法
DECODE是Oracle公司独家提供的功,该函数功能强大,下文对DECODE函数的语法作了详尽的阐述,供您参考学习
base64decode 编码,解码。
mysql 函数 大全 MYSQL实现decode mysql日期和字符相互转换方法
博客:PostgreSQL的学习心得和知识总结(四十四)|语法级自上而下完美实现Oracle数据库DECODE函数的实现方案(GreenPlum & AntDB)
js实现urlncode 和urldecode
H264Decode
UrlDecode是我们天天要用的东西了,小的字符串,我们直接拷到在线网站上处理掉,大量数据呢?这个工具可以高效离线处理,亲测200GB日志,完全满足您的需求。