为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
CREATE TABLE "SYSDBA"."TABLE_1"
(
"COLUMN_1" VARCHAR(10),
"COLUMN_2" DATETIME(0) WITH TIME ZONE)
为什么如下两个语句的查询结果不一致。
select * from table_1 order by column_2 desc;
查询结果
select * from table_1 order by column_2 desc limit 4;
查询结果
1.因为null与null之间无法比较,所以在排序的时候,desc和asc其实它们顺序是不会变的,也就是正序或者倒序排序没什么区别
2.如果比较的此列有多个null值和非null值,一般数据库在进行有null值排序的时候要么把全部null放在前面,要么全部放在后面,达梦库默认null是全部放前面,可以通过dm.ini中参数ORDER_BY_NULLS_FLAG来控制排序的时候放前面还是后面
3.当order by 后再接limit时,取数据过程是全部放null的过程优先于limit,先把全部null放前面或者后面,再取limit的多少行,可以通过在null列中加入部分非null值验证一下
Java程序查询DM数据库日志打印显示耗时30秒,同样的sql在DM数据库连接工具中仅耗时1秒,这是正常的吗
测试着并没有您说的这种现象,建议再检查下执行编写的SQL