首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL查询中出现的怪事解决方法

2012-02-19 
SQL查询中出现的怪事在对一组数据进行模糊查询时出现的这种情况:查询的结果一共有75条记录selecttop25*fro

SQL查询中出现的怪事
在对一组数据进行模糊查询时出现的这种情况:
查询的结果一共有75条记录
select     top   25   *   from   user_table
where   f_user_id   like   '%netuser% '
结果:
netuser
netuser001
....
netuser024

接下来是25个递增,当用top   64   查询的时候,结果确变了

select     top   64   *   from   txa_user_info
where   f_user_id   like   '%netuser% '
结果:
netuser001
...
netuser_064

原来的netuser这条记录却没有了

当用户top   75查时,发现这条记录出现在最后。

这就奇怪了,为什么会出现这种情况呢?
这些用户名并不连续,从netuser,netuser001-netuser025,netuser032-netuser075

我又试着添加了连续编号的用户名,这回确没有问题,
请问这是为什么呢?




[解决办法]
因为数据库没有排序,它可选出任意的符合条件的前25条或前64条


[解决办法]
上面這個元老說得好對,like '%% ' 是沒有排序的,
[解决办法]
select top 25 * from user_table
where f_user_id like '%netuser% '

select top 64 * from txa_user_info
where f_user_id like '%netuser% '

====

是两个不同的表啊
[解决办法]
select top 25 * from
(
select * from user_table where f_user_id like '%netuser% ' order by f_user_id
) t
[解决办法]
不要只依赖一个字段排序,多多使用几个字段,总之使结果的顺序固定唯一即可以了.

热点排行