首页 > 数据库技术 > 详细

mysql oder by排序把null的字段放在最后面

时间:2020-01-06 12:21:45      阅读:83      评论:0      收藏:0      [点我收藏+]

默认情况下,MySQL将null算作最小值。

使用:
if(isnull(字段名),1,0) 
说明:它的意思是将该字段根据是否为null值分成两部分,0相当于null值部分放在最后面,1相当于非null值部分放在前面,在排序的时候,先根据这一属性进行升序排列

 

select
		city_code, ins_code, organ_type, organ_name, organ_address,
		organ_access_url,
		state, longitude, latitude,
		area, organ_category, adCode, organ_catagery
		, ROUND(
		6371.393 * 2 * ASIN(
		SQRT(
		POW(
		SIN(
		(
		#{latitude,jdbcType=DOUBLE}
		* PI() / 180 - latitude * PI() / 180
		) / 2
		),
		2
		) +
		COS(#{latitude,jdbcType=DOUBLE} * PI() / 180) * COS(latitude * PI()
		/
		180) * POW(
		SIN(
		(
		#{longitude,jdbcType=DOUBLE} * PI() / 180 - longitude
		* PI() / 180
		) / 2
		),
		2
		)
		)
		) * 1000 * #{val}
		)/1000 AS dis
		FROM
		wh_institution
		where city_code = #{cityCode,jdbcType=VARCHAR} and ins_code = #{insCode,jdbcType=VARCHAR}  and organ_type =
		#{organType,jdbcType=VARCHAR} and state = ‘1‘
		ORDER BY
		if(isnull(dis),1,0),
		dis,
		CONVERT(organ_name USING gbk)
		COLLATE
		gbk_chinese_ci ASC
		LIMIT
		#{startRow},#{endRow}

  

mysql oder by排序把null的字段放在最后面

原文:https://www.cnblogs.com/zyf-yxm/p/12155626.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!