mysql仿oracle的decode效果查询_Mysql

以下代码在MYSQL中测试通过,MSSQL应该能跑通,未测试。

复制代码 代码如下:

#创建表如下
create temporary table tmp (a int, b int ,c int);
insert into tmp VALUES (1,10,1),(10,10,2),(10,100,2);
#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 a as d from tmp where c=1
union
select b as d from tmp where c=2
)

时间: 2024-09-16 05:00:40

mysql仿oracle的decode效果查询_Mysql的相关文章

mysql仿asp的数据库操作类_Mysql

<?php  class MySQLDB    {      //MYSQL数据库操作类      //作者:熊毅      //版本:2.0(发行版)        查询数据时Query后可以用GetValue得到相应的值,既可以是字段名也可以是已0开始的序号  插入新值,先用AddNew后使用SetValue相应的字段名或序号和字段值,在用Update添加  编辑时用Edit指定编辑记录的条件在使用SetValue,最后用Update添加  在类使用过程中,sTName记录上次使用的数据库表

mysql-使用MYSQL实现oracle start with connect by递归树查询

问题描述 使用MYSQL实现oracle start with connect by递归树查询 代码如下,如何修改,感谢 DELETE FROM SFL_YWZYFL WHERE YWZYFL_ID IN (SELECT YWZYFL_ID FROM SFL_YWZYFL START WITH YWZYFL_ID IN(:ids) CONNECT BY PRIOR YWZYFL_ID=SFL_YWZYFL_ID) 不要沉啊! 解决方案 没卵用没卵用没卵用没卵用没卵用没卵用没卵用没卵用没卵用 解决

深入Mysql,SqlServer,Oracle主键自动增长的设置详解_Mysql

1.把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: 复制代码 代码如下: create table customers(id int auto_increment primary key not null, name varchar(15));insert into customers(name) values("name1"),("name2");select id fr

MySQL转换Oracle的需要注意的七个事项_Mysql

下面总结出MySQL转换Oracle的几点注意事项,希望对大家有所帮助. 1.自动增长的数据类型处理 MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值.Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段. CREATE SEQUENCE 序列号的名称 (最好是表名 序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE: 其中最大的值按字段的长

MySQL单表多关键字模糊查询的实现方法_Mysql

在最近的一个项目需要实现在MySQL单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段.例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍.然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录. 可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词.如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到两种

浅谈mysql中多表不关联查询的实现方法_Mysql

大家在使用MySQL查询时正常是直接一个表的查询,要不然也就是多表的关联查询,使用到了左联结(left join).右联结(right join).内联结(inner join).外联结(outer join).这种都是两个表之间有一定关联,也就是我们常常说的有一个外键对应关系,可以使用到 a.id = b.aId这种语句去写的关系了.这种是大家常常使用的,可是有时候我们会需要去同时查询两个或者是多个表的时候,这些表又是没有互相关联的,比如要查user表和user_history表中的某一些数据

MySQL中实现插入或更新操作(类似Oracle的merge语句)_Mysql

如果需要在MySQL中实现记录不存在则insert,不存在则update操作.可以使用以下语句: 更新一个字段: INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KEY UPDATE columnA=IF(columnB>0,1,columnA) 更新多个字段: INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KE

MySQL的一条慢SQL查询导致整个网站宕机的解决方法_Mysql

直接切入正题吧: 通常来说,我们看到的慢查询一般还不致于导致挂站,顶多就是应用响应变慢 不过这个恰好今天被我撞见了,一个慢查询把整个网站搞挂了先看看这个SQL张撒样子: # Query_time: 70.472013 Lock_time: 0.000078 Rows_sent: 7915203 Rows_examined: 15984089 Rows_affected: 0 # Bytes_sent: 1258414478 use js_sku; SET timestamp=1465850117

MySQL和Oracle中的隐式转换

今天在处理一个问题的时候,需要根据其他部门提供的sql语句对一个表中的数据进行了筛查. 语句类似下面的形式 > SELECT MAX_LEVEL,LOGOUT_TIME,CURRENT_DATE AS NOWTIME,cn_master FROM t_test_october_back_a WHERE ID in ( 100, 200, 300, 400, 500) ; +-----------+---------------+------------+-----------+ | MAX_LE