1. sql中的排序错乱了是怎么回事啊
如果你的 0001-9010数据类型是字符串型 那排序 肯定不是按 0001-9010排序的,你试一下把数据类型改成int型
2. SQL中升序排序字段为空值影响排序结果解决方法
在公司开发时使用order by *** asc 进行排序时(***字段为int类型,主要做一个按照数值越小排名越前得功能),出现了所有***列为NULL值的记录都排在前面的情况。
解决办法:在排序字段名前加上-,然后改为降序排序,这样子有数值的记录的排序还是跟原来一样(负负得正),并且这把***列值为NULL的记录都排在后面了
3. sql 排序 不按顺序怎么回事
如果是有表里面有很多行的话,一个order
by
name是出不来的,用临时表吧,oracle的话,就像这样;
create
table
aaa_tmp
as
select
*
from
xx
where
name
like
'a%';
insert
into
aaa_tmp
select
*
from
xx
where
name
like
'%a%';
insert
into
aaa_tmp
select
*from
xx
where
name
like
'%a';
select
*
from
aaa_tmp
这样得到的就是你要的结果了
如果是sql
server,把第一句改成
select
*
into aaa_tmp
from
xx
where
name
like
'a%';
其他不变就行了
4. sql语句查询按指定字段排序,数据的顺序会变。哪些数据库会产生这种情况
都有可能。
有数据库为了优化速度,将最后加工过的数据在索引中的顺序前调。
查询时候,如果是按照索引排序的话,由于你设置了order强制使用一个顺序,而后台调用数据填充的时候,是按照索引顺序来填充的话,就会出现顺序变化的情况。