为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:dm8 【操作系统】:centos7 【CPU】: 【问题描述】*: select f_transferable from t_license order by f_transferable asc
f_transferable 字段是int类型的,里边值有null,0, 1, 2,3等值,
使用order by排序后,不管用desc还是asc,null的值都是在最前边
你可以设置一下ORDER_BY_NULLS_FLAG参数, 控制null值返回的位置,取值0、1、2、3。0表示NULL值始终位于最前面。1表示ASC时NULL值位于最后面,DESC时NULL值位于最前面。在参数等于1的情况下,NULL值的位置与ORACLE保持一致。2表示ASC时NULL值位于最前面,DESC时NULL值位于最后面。在参数等于2的情况下,NULL值的位置于MYSQL保持一致。3表示在取值为1的基础上,将空串置于NULL值和非空值之间。 可以使用sql进行修改,把最后面的2改成你需要的值 sp_set_para_value(1,'ORDER_BY_NULLS_FLAG',2);
你可以设置一下ORDER_BY_NULLS_FLAG参数,
控制null值返回的位置,取值0、1、2、3。0表示NULL值始终位于最前面。1表示ASC时NULL值位于最后面,DESC时NULL值位于最前面。在参数等于1的情况下,NULL值的位置与ORACLE保持一致。2表示ASC时NULL值位于最前面,DESC时NULL值位于最后面。在参数等于2的情况下,NULL值的位置于MYSQL保持一致。3表示在取值为1的基础上,将空串置于NULL值和非空值之间。
可以使用sql进行修改,把最后面的2改成你需要的值
sp_set_para_value(1,'ORDER_BY_NULLS_FLAG',2);