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语句,把小写的字母转换成大写的 ...
随机推荐
- bat批量删.svn
==================1======================= Bat代码 收藏代码 @echo off :start ::启动过程,切换目录 set pwd=%cd% cd % ...
- Git的一些实用操作
Ref:http://stackoverflow.com/questions/17195861/undo-git-update-index-assume-unchanged-file 1. 添加本地忽 ...
- 20145206实验四《Android开发基础》
20145206 实验四<Android开发基础> 实验内容 ·安装Android Studio ·运行安卓AVD模拟器 ·使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 ...
- 20145206邹京儒《Java程序设计》第5周学习总结
20145206 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 8.1 语法与继承架构 package CH5; /** * Created by Administrato ...
- Clr Via C#读书笔记---线程基础
趣闻:我是一个线程:http://kb.cnblogs.com/page/542462/ 进程与线程 进程:应用程序的一个实例使用的资源的集合.每个进程都被赋予了一个虚拟地址空间. 线程:对CPU进行 ...
- 二叉树学习笔记之经典平衡二叉树(AVL树)
二叉查找树(BSTree)中进行查找.插入和删除操作的时间复杂度都是O(h),其中h为树的高度.BST的高度直接影响到操作实现的性能,最坏情况下,二叉查找树会退化成一个单链表,比如插入的节点序列本身就 ...
- C语言中do...while(0)的妙用
在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语句: 通常,如果一个函数开始要分配一些资源,然后如果在中途遇到错 ...
- wp8 入门到精通 MultiMsgPrompt
List<NotifyMsg> arraymsg = new List<NotifyMsg>(); List<NotifyInfo> ArrayNotifyInfo ...
- base64编码、解码的C语言实现
转自:http://www.cnblogs.com/yejianfei/archive/2013/04/06/3002838.html base64是一种基于64个可打印字符来表示二进制数据的表示方法 ...
- Eclipse查看JDK源码
设置 点 "window"-> "Preferences" -> "Java" -> "Installed JR ...