oracle sql别名
为sql的字段起一个别名,常以为是可有可无的,但是有时候是必要的。
例如在ibatis中
<!-- 获取已发或待发送的彩信记录列表 -->
<resultMap id="mmsListByRecordTypeMap" class="richinfo.mms.bean.req.MmsRecordReq" >
<result column="groupid" property="groupId" />
<result column="subject" property="title" />
<result column="sendnumber" property="userNumber" />
<result column="destnumbers" property="destNumber" />
<result column="istime" property="isTimming" typeHandler="richinfo.mms.util.MyBatisTypeHandlerCallback"/>
<result column="statuss" property="status" />
<result column="startsendtime" property="sendTime" />
<result column="totalsize" property="totalSize" />
</resultMap>
<select id="getMmsListByRecordType" resultMap="mmsListByRecordTypeMap"
resultClass="map">
select * from (select b.*,rownum r from ( select
uin,FN_GetDecryptUserNumber(sendnumber) sendnumber,subject,to_char(startsendtime, 'yyyy-mm-dd hh24:mi:ss')
startsendtime,istime,showfileid,totalsize,showtype,groupid,
wmsys.wm_concat(FN_GetDecryptUserNumber(destnumber)) destnumbers,wmsys.wm_concat(nvl(status,
0)) statuss from mms_send_his_record where 1=1
<isEqual prepend="and" property="recordType" compareValue="0">
issave=1
</isEqual>
<isEqual prepend="and" property="recordType" compareValue="1">
<![CDATA[
(istime=0 or (istime=1 and startsendtime<=sysdate)) and issave=1
]]>
</isEqual>
<isEqual prepend="and" property="recordType" compareValue="2">
<![CDATA[
istime=1 and startsendtime>sysdate
]]>
</isEqual>
and uin = #uin#
<include refid="condition" />
<![CDATA[
group by groupid,uin,FN_GetDecryptUserNumber(sendnumber),subject,startsendtime,istime,showfileid,totalsize,showtype order by startsendtime desc) b
where rownum <= #endRecord#
]]>
<isNotEmpty property="destNumber">
<![CDATA[
and instr(destnumbers,#destNumber#)>0 or instr(destnumbers,fn_encrypt_function(#destNumber#))>0
]]>
</isNotEmpty>
) where r > #startRecord#
</select>
1、必须为第15、17行起别名
如果不为第15、17行起别名的话,执行sql语句就会出问题。因为这个select的查询结果集映射在了mmsListByRecordTypeMap上,这时候
如果不起别名,FN_GetDecryptUserNumber(sendnumber)和sendnumber是不相等的,结果就不能映射在userNumber上。
所以select查询的列名和resultMap的column上的名字是必须相等的。
2、group by 语句不需要别名
oracle sql别名的更多相关文章
- Oracle SQL tuning 步骤
Oracle SQL tuning 步骤 SQL是的全称是Structured Query Language(结构化查询语言).SQL是一个在80年代中期被使用的工业标准数据库查询语言.不要把SQL语 ...
- Oracle SQL语句执行过程
前言 QQ群讨论的时候有人遇到这样的问题:where子句中无法访问Oracle自定义的字段别名.这篇 博客就是就这一问题做一个探讨,并发散下思维,谈谈SQL语句的执行顺序问题. 问题呈现 直接给出SQ ...
- Oracle SQL优化[转]
Oracle SQL优化 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化 ...
- Oracle SQL调优记录
目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太 ...
- Oracle SQL性能优化技巧大总结
http://wenku.baidu.com/link?url=liS0_3fAyX2uXF5MAEQxMOj3YIY4UCcQM4gPfPzHfFcHBXuJTE8rANrwu6GXwdzbmvdV ...
- Oracle,SQL Server 数据库较MySql数据库,Sql语句差异
原文:Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 1.关系型数据库 百度百科 关系数据库 ...
- DB2、ORACLE SQL写法的主要区别
DB2.ORACLE SQL写法的主要区别 说实话,ORACLE把国内的程序员惯坏了,代码中的SQL充斥着大量ORACLE特性,几乎没人知道ANSI的标准SQL是什么样子,导致程序脱离了ORACL ...
- 7.25实习培训日志-Oracle SQL(一)
Oracle SQL(一) 重点 尽量避免select *,影响性能,不直观. 慎用Distinct,会排序,影响性能,用exists 排序尽量利用索引,索引有序 索引列不要加函数,会使索引失效 外连 ...
- Oracle SQL语句性能优化方法大全
Oracle SQL语句性能优化方法大全 下面列举一些工作中常常会碰到的Oracle的SQL语句优化方法: 1.SQL语句尽量用大写的: 因为oracle总是先解析SQL语句,把小写的字母转换成大写的 ...
随机推荐
- finla变量,方法和类
1.finla变量关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值,通常,有final定义的变量为常量 final关键字定义的变量必须在声明时对其进行赋值定义,final除了可以修饰基 ...
- NYOJ题目813对决
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAssAAALRCAIAAAAiJ3lxAAAgAElEQVR4nO3dPW7jSgMu6LsJ516IYy
- 关于安装Ubuntu后触摸板无法使用的解决方案
安装了Ubuntu后发现触摸板无法使用,以为是修改了安装文件导致(之前拿安装源文件做了小实验),于是重装,之后触摸板仍无法使用,在一个长满小广告的页面上找到了解决方案. 以下是原文章内容: 最近突然发 ...
- 与你相遇好幸运,My Toolkit of Nodejs
>测试:restler.mocha.assert.request.request-promise >安装:nrm >运维:pm2.node-gyp >开发:nodemon.in ...
- Android的两种事件处理机制
UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理. 对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事 ...
- Oracle如何写出高效的SQL
转载:http://www.blogjava.net/ashutc/archive/2009/07/19/277215.html 1.选择最有效率的表明顺序(只在基于规则的优化器中有效) Oracle ...
- 11g 使用rman duplicate复制数据库,创建辅助实例
一,创建所需目录 1)创建审计文件目录 PROD1@dbrac1 /dsg/oracle11$ cd $ORACLE_BASE/admin PROD1@dbrac1 /u01/app/oracle/a ...
- 5-04用Sql语句创建表
用Sql语句创建表的基本语法: USE E_Market--指向当前所操作的数据库 GO CREATE TABLE CommoditySort--创建表的名字 { sortID int IDENTIT ...
- C++ list的基本操作和使用
转自:http://blog.sina.com.cn/s/blog_6a4aa98201012fhn.html Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入 ...
- Socket编程基础知识
端口号常识: 端口号被从1 开始分配. 通常端口号超出255 的部分被本地主机保留为私有用途. 1到255 之间的号码被用于远程应用程序所请求的进程和网络服务. 每个网络通信循环地 ...