- 浏览: 67034 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
乒乓狂魔:
错了,是这个地址 http://lgbolgger.iteye ...
springMVC 解决GET乱码 -
乒乓狂魔:
楼主可以参考这篇文章 http://lgbolgger.it ...
springMVC 解决GET乱码
最近我在做电子商务项目里面遇到了一个需求,就是把秒杀与团购的商品一起查询出来。但是由于两个表里面的字段不一样所以秒杀商品与团购商品分来存储的,合并怎么合并了??
最后我想到oracle里面的关键字union,这个关键字是用来查询并集的,所以我就用了union来把两个表里面数据查询出来,sql如下:
最后我想到oracle里面的关键字union,这个关键字是用来查询并集的,所以我就用了union来把两个表里面数据查询出来,sql如下:
"select A.*\n" + " from (\n" + " select A.SECKILL_ID ID,\n" + " A.COMMODITY_ID,\n" + " A.COMMODITY_NAME,\n" + " A.SELL_PRICE,\n" + " A.BUY_USER_CNT,\n" + " A.PRICE,\n" + " A.isTimeEnd,\n" + " A.COUNT,\n" + " A.BRAND_ID,\n" + " 1 TYPE,\n" + " discount,\n" + " A.BEGIN_TIME,\n" + " A.CONTENT CONTENT,\n" + " TO_CHAR(discount * 10, '0.99') show_discount\n" + " from (select s.*,\n" + " sc.BRAND_ID,\n" + " sc.COMMODITY_NAME,\n" + " case\n" + " when begin_time < sysdate and end_time > sysdate then\n" + " 0\n" + " else\n" + " 1\n" + " end isTimeEnd,\n" + " sc.sell_price,\n" + " nvl(cnt, 0) + nvl(back_count, 0) BUY_USER_CNT,\n" + " s.price / sc.sell_price discount\n" + " from seckill s\n" + " join (select CSC.SORT_ID,\n" + " C.COMMODITY_ID,\n" + " C.COMMODITY_NAME,\n" + " SC.SELL_PRICE,\n" + " SC.SHOP_COMMODITY_ID,\n" + " C.BRAND_ID\n" + " from COMMODITY C\n" + " join SHOP_COMMODITY SC on C.COMMODITY_ID =\n" + " SC.COMMODITY_ID\n" + " join COMMODITY_SORT_CONTACT CSC on CSC.COMMODITY_ID =\n" + " C.COMMODITY_ID\n" + " join (SELECT *\n" + " FROM sort\n" + " START WITH SORT_ID = 1\n" + " connect by P_ID = prior SORT_ID\n" + " and STATE = 1) s on S.SORT_ID =\n" + " CSC.SORT_ID\n" + " join COMMODITY_BRAND CB on C.BRAND_ID = CB.BRAND_ID\n" + " where S.STATE = 1\n" + " and SC.STATE = 1\n" + " and sc.SELL_PRICE > 0\n" + " and C.STATE = 1\n" + " and C.IS_SHOW = 1\n" + " and CB.STATE = 1\n" + " and SC.SALE_ENABLE_COUNT > 0\n" + " and SC.SELL_PRICE > 0\n" + " and (c.IS_SCORE is null or c.IS_SCORE != 1)) sc on sc.commodity_id =\n" + " s.commodity_id\n" + " left join (select count(seckill_id) cnt, seckill_id\n" + " from seckill_order\n" + " group by seckill_id) o on o.seckill_id =\n" + " s.seckill_id\n" + " where s.state = 1) A\n" + " union \n" + " select A.GROUP_BUYING_ID ID,\n" + " A.COMMODITY_ID,\n" + " A.COMMODITY_NAME,\n" + " A.SELL_PRICE,\n" + " A.BUY_USER_CNT,\n" + " A.PRICE,\n" + " A.isTimeEnd,\n" + " A.BRAND_ID,\n" + " A.COUNT,\n" + " 2 TYPE,\n" + " discount,\n" + " A.BEGIN_TIME,\n" + " A.GROUP_BUYING_TEXT CONTENT,\n" + " TO_CHAR(discount * 10, '0.99') show_discount\n" + " from (select group_buying_text CONTENT,\n" + " group_buying_price price,\n" + " s.*,\n" + " sc.BRAND_ID,\n" + " sc.COMMODITY_NAME,\n" + " case\n" + " when begin_time < sysdate and end_time > sysdate then\n" + " 0\n" + " else\n" + " 1\n" + " end isTimeEnd,\n" + " sc.sell_price,\n" + " nvl(cnt, 0) + nvl(back_count, 0) BUY_USER_CNT,\n" + " s.group_buying_price / sc.sell_price discount\n" + " from group_buying s\n" + " join (select CSC.SORT_ID,\n" + " C.COMMODITY_ID,\n" + " C.COMMODITY_NAME,\n" + " SC.SELL_PRICE,\n" + " SC.SHOP_COMMODITY_ID,\n" + " C.BRAND_ID\n" + " from COMMODITY C\n" + " join SHOP_COMMODITY SC on C.COMMODITY_ID =\n" + " SC.COMMODITY_ID\n" + " join COMMODITY_SORT_CONTACT CSC on CSC.COMMODITY_ID =\n" + " C.COMMODITY_ID\n" + " join (SELECT *\n" + " FROM sort\n" + " START WITH SORT_ID = 1\n" + " connect by P_ID = prior SORT_ID\n" + " and STATE = 1) s on S.SORT_ID =\n" + " CSC.SORT_ID\n" + " join COMMODITY_BRAND CB on C.BRAND_ID = CB.BRAND_ID\n" + " where S.STATE = 1\n" + " and SC.STATE = 1\n" + " and sc.SELL_PRICE > 0\n" + " and C.STATE = 1\n" + " and C.IS_SHOW = 1\n" + " and CB.STATE = 1\n" + " and SC.SALE_ENABLE_COUNT > 0\n" + " and SC.SELL_PRICE > 0\n" + " and (c.IS_SCORE is null or c.IS_SCORE != 1)) sc on sc.commodity_id =\n" + " s.commodity_id\n" + " left join (select count(group_buying_id) cnt,\n" + " group_buying_id\n" + " from (select MEMBER_ID, group_buying_id\n" + " from GROUP_BUYING_MEMBER\n" + " where state != 2\n" + " group by group_buying_id, member_id)\n" + " group by group_buying_id) o on o.group_buying_id =\n" + " s.group_buying_id\n" + " where s.state = 1) A) A\n" + " order by BEGIN_TIME desc, type asc, ID DESC\n" + "\n" + "";,但是我在执行之后老是报orc-000932异常,数据类型不一致。于是我就想是不是我要查询的字段是不是有类型问题,我一个个的对比发现没有问题。然后我在网上找了一下问题,原来是union关键字会会对结果集里面的商品数据进行帅选,把union换成union all就可以解决这个问题了.
发表评论
-
oracle11 导出空表
2015-04-28 14:42 55611G中有个新特性,当表 ... -
ORA-01940:无法删除当前已链接的用户(转)
2015-04-28 12:10 838(1)查看用户的连接状况 select username,s ... -
oracle的几个排序函数 ROW_NUMBER()/DENSE_RANK()/RANK()
2015-03-16 15:16 837今天看到有位同事的sql中使用了“RANK() over pa ... -
oracle ORA-01722无效数字
2015-02-15 15:02 491我有一个表table_a 里面有一个字段field中保 ... -
oracle匿名登录
2014-05-28 14:17 663最近再一个项目里面出现了这样的情况,就是该数据库系统下面的 ... -
oracle触发器
2014-04-10 11:03 532变异表是指激发触发器 ... -
ORACLE 触发器
2014-03-22 10:27 610本篇主要内容如下: 8.1 触发器类型 8.1.1 DML ... -
Oracle ORA-3137[12333] 关闭的连接 java.sql.SQLRecoverableException: 无法从套接字读取更多的数据
2014-02-28 12:52 8417今天在项目中遇到一个异常:Oracle ORA-313 ... -
ORACLE IN与exists区别
2013-10-08 12:49 575EXISTS的执行流程 select * from ...
相关推荐
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。 MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算...
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。 MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算...
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来
union关键字 SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION ALL SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103); 为表取别名 SELECT * from orders AS o WHERE o.o...
UNION ALL 连接数据集关键字,可以将两个查询结果集拼接为一个,不会过滤掉相同的记录 今天在接到一个需求的时候使用了UNION进行查询后发现,如果两个查询分别使用ORDER BY后拼接居然无法成功排序,经过了好一番折腾...
/* –1 UNION 运算符是...如果使用all关键字,那么结果集将包含所有行并且不删除重复行 c.sql是从左到右对包含UNION 运算符的语句进行取值,使用括号可以改变求值顺序 –例如: */ select * from tablea union all ( sel
20. SQL UNION 和 UNION ALL 操作符 26 21. SQL SELECT INTO 语句 28 22. SQL CREATE DATABASE 语句 29 23. SQL CREATE TABLE 语句 29 24. SQL 约束 (Constraints) 30 25. SQL NOT NULL 约束 31 ……
3、union关键字默认会自动去重,如果使用union all 可以包含重复项 # 联合查询 # union 联合 合并:将多条查询语句的结果合并成一个结果 # 语法: # 查询语句1 # UNION # 查询语句2 # UNION # .
表查询: 合并查询:使用union关键字,可将满足条件的重复行去掉。 代码如下: select ename,sal,job from emp where sal > 2500 union select ename,sal,job from emp where job = ‘MANAGER’; 而union all用法和...
目录 1 Hive 概念与连接使用: 2 2 Hive支持的数据类型: 2 2.1原子数据类型: 2 2.2复杂数据类型: 2 2.3 Hive类型转换: 3 3 Hive创建/删除数据库 3 ...11 UNION ALL 6 12 Hive使用注意点: 6 13 Hive优化 9
11、UNION和UNION ALL的区别?12、关心过业务系统里面的sql耗时吗?对慢查询都怎么优化过?13、主键使用自增ID还是UUID,为什么?14、MySQL数据库cpu飙升的话,要怎么处理呢?15、什么是存储过程?有哪些优缺点?16...
1. (判断)大数据专业高级2-16.0课程19单元:mysql中,union中ALL关键字的作用是在结果集中所有行全部列出,不管是否有重复行 2. (判断)大
154 8.6 用TRUNCATE TABLE语句删除记录 154 8.6.1 TRUNCATE TABLE语句的语法 155 8.6.2 使用TRUNCATE TABLE删除表中数据 155 8.7 使用联合 156 8.7.1 UNION关键字的语法 156 8.7.2 使用UNION将两...
C项 在select后加入关键字all表示不去重(默认) D项 限制返回结果集中的记录条数 2 当你执行以下查询语句: SELECT sno,sname FROM student WHERE sdept =’计算机科学’ OR sdept =’信息管理’; 在WHERE语句中,...
如果此文章有什么错误,或者您有什么建议,欢迎随时联系我...常见的关键字:and、or、union all select、引号、空格等等过滤 还有一些类似的技术不是过滤而是通过转义函数或者剥离非法关键字 绕过方法: 1、大小写变形
OR关键字也可以用来联合多个条件进行查询,但是与AND关键字不同。使用OR关键字时,只要满足这几个查询条件的其中一个,这样的记录将会被查询出来。如果不满足这些查询条件中的任何一个,这样的记录将被排除掉。OR...
9.4 UNION与UNION JOIN 9.4.1 关系的集合运算 9.4.2 UNION运算符 9.4.3 ORDER BY子句排序UNION运算结果 9.4.4 对多表进行UNION运算 9.4.5 UNION JOIN 连接表 9.5 表连接的其他应用及注意问题 ...
9.4 union与union join 177 9.4.1 关系的集合运算 177 9.4.2 union运算符 178 9.4.3 order by子句排序union运算结果 180 9.4.4 对多表进行union运算 181 9.4.5 union join 连接表 183 9.5 表连接的其他应用及...
⑵ A、DISTINCT B、UNION C、ALL D、TOP ⑶ A、JOIN B、UNION C、INTO D、LIKE ⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE 5、语句DBCC SHRINKDATABASE (Sample, 25)中的25表示的意思是 A、25M B、剩余...
9.6.3 UNION集合运算与多表连接应用 9.7 小结第10章 子查询 10.1 子查询的简单应用 10.1.1 子查询概述 10.1.2 在多表查询中使用子查询 10.1.3 在子查询中使用聚合函数 10.1.4 使用ANY或ALL运算符 10.1.5 使用子查询...