order by 对null的处理

【Oracle 结论】 
order by colum asc 时,null默认被放在最后
order by colum desc 时,null默认被放在最前
nulls first 时,强制null放在最前,不为null的按声明顺序[asc|desc]进行排序
nulls last 时,强制null放在最后,不为null的按声明顺序[asc|desc]进行排序 
【MySql 结论】
order by colum asc 时,null默认被放在最前
order by colum desc 时,null默认被放在最后
ORDER BY IF(ISNULL(update_date),0,1) null被强制放在最前,不为null的按声明顺序[asc|desc]进行排序
ORDER BY IF(ISNULL(update_date),1,0) null被强制放在最后,不为null的按声明顺序[asc|desc]进行排序

<select id="getPchsOrderReport" parameterClass="java.util.Map" resultClass="com.project.pojo.purchase.SupPurReport">
		SELECT s.unit_uid as supplierId,s.UNIT_NAME as supplierName,IFNULL(m.orderNum, 0) as orderNum,IFNULL(m.orderPrice, 0) as orderPrice,
		IFNULL(m.receiveNum, 0) as receiveNum ,IFNULL(m.receivePrice, 0) as receivePrice
		FROM bas_supplier s LEFT JOIN (
		SELECT
			b.supplier_uid AS supplierId,
			SUM(IFNULL(d.size, 0)) AS orderNum,
			SUM(IFNULL(d.sum, 0)) AS orderPrice,
			SUM(IFNULL(d.receive, 0)) AS receiveNum,
			SUM(
				IFNULL(d.receive, 0) * IFNULL(d.price, 0)
			) AS receivePrice
		FROM
		pchs_bill b
		LEFT JOIN pchs_detail d ON b.bill_uid = d.bill_uid
		WHERE b.com_uid = #comUid#
		<isNotEmpty property="status">
			and b.status  in <iterate property="status" conjunction="," close=")" open="(">#status[]:Integer#</iterate>
		</isNotEmpty>
		<isNotEmpty prepend="AND" property="startDate">
			<![CDATA[b.bill_date >= #startDate#]]>
		</isNotEmpty>
		<isNotEmpty prepend="AND"  property="endDate">
			<![CDATA[b.bill_date <= #endDate#]]>
		</isNotEmpty>
		<isNotEmpty prepend="and" property="storageId"> b.storage_uid = #storageId#  </isNotEmpty>
		<isNotEmpty prepend=" and b.storage_uid in " property="multi_storage_uid">
			<iterate property="multi_storage_uid" conjunction="," close=")" open="("> #multi_storage_uid[]# </iterate>
		</isNotEmpty>
		GROUP BY
			b.supplier_uid
		) m ON m.supplierId=s.unit_uid
		<isNotEmpty property="supplierId">
		WHERE s.unit_uid =#supplierId#
		</isNotEmpty>
		order by IF(ISNULL(orderNum),1,0),orderNum DESC,IF(ISNULL(orderPrice),1,0),orderPrice DESC
		<isNotEmpty property="offset">
			LIMIT #offset#,#limit#
		</isNotEmpty>
</select>

  

时间: 2024-07-31 00:39:59

order by 对null的处理的相关文章

调用findExtensions,null在缓存中保存null

privateList<Extension> findExtensions(String scope) { String[] orders = null; String orderlist = conf.get("urlnormalizer.order." +scope); if (orderlist == null) orderlist = conf.get("urlnormalizer.order"); if (orderlist != null&a

Null / Loopback (Null)

参考: http://www.cnblogs.com/caoguoping100/p/3654452.html https://wiki.wireshark.org/NullLoopback 抓包安装 Terminal终端,输入命令. tcpdump -i pdp_ip0 -s 0 -w pdp.pcap 获取的报文,发现存在Loopback . pdp_ip0 是3G/4G下的网卡,获取的报文直接loopback层.不解? 附wireshark解析 Null / Loopback (Null)

数据库编程1 Oracle 过滤 函数 分组 外连接 自连接

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程1 Oracle 过滤 函数 分组 外连接 自连接 本文实验基于的数据表: winsows安装好Oracle11g之后,开始实验 SQLplus 登陆 ORacle sqlplus 退出的方式 查看用户之下有什么表 查看表的所有记录,不区分大小写 设置SQLplus行宽,页宽,列宽: 清屏命令 select as 语法 1,as别名的使用 2,没有引号带有空格的别名,无法识别: 3,带有

数据库编程2 Oracle 过滤 函数 分组 外连接 自连接

[本文谢绝转载原文来自http://990487026.blog.51cto.com] 续:数据库编程1 Oracle 过滤 函数 分组 外连接 自连接 where like模糊查询,查询员工姓名是4个字母 SQL> select * from emp where ename like '____';      EMPNO ENAME                JOB                       MGR HIREDATE          SAL       COMM    

Atitit.提升电子商务安全性 在线充值功能安全方面的设计

1. 防止dataservcie对充值订单表的直接改写,只能通过api,不能通过sql1 1.1. Order_id的安全取值,注入检测1 1.2. 判断是否有此订单,否则CantFindRechargeOrderEx1 1.3. 如果订单状态有无.throw new RechargeOrderStatErr(" order.stat:" + order_id + "." + stat);1 1.4. 判断次订单是否处理过..if (finished(order_i

Jquery-easyUI-datagrid参数之 queryParams

http://blog.163.com/xpf_designer/blog/static/19213618920117784055668/ Html <div  region="center" border="false"  style="padding:0px 3px 0px 3px;margin:0px;"> <table id="test"></table> </div>

ECSHOP订单一键发货简化订单发货流程

第一步: 在templates/order_info.htm文件找到: {if $operable_list.confirm}       <input name="confirm" type="submit" value="{$lang.op_confirm}" class="button" /> 在此代码前加上“一键发货”按钮,代码如下: <!-- 一键发货 -->       {if $order

Android Sqlite的操作

1.写一个类继承SQLiteOpenHelper public class MyHelper extends SQLiteOpenHelper { public MyHelper(Context context) { super(context, Const.DB_DBNAME , null, Const.DB_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteData

入门篇:9.组件4:ContentProvider(内容提供者)

android 四大基本组件 的ContentProvider(内容提供者) 这个组件其实就是一个应用进行数据或数据库提供.共享其他应用获取数据的组件,其大致的结构图如下: 其中uri是一个重要的中间媒介. 联系到我们平时用的安卓程序,最常见的就是通讯录.在我们的安卓手机里,通讯录的设计其实是两个程序,其中有一个程序没有用户界面,单纯的存储着联系人信息,并且数据库结构复杂,这也是为了保证数据的安全.另外一个程序就是我们可以看见的通讯录程序.那么第一个程序就是一个ContentProvider,用