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

查不到记要

2013-11-09 
查不到记录select top 100 * from 土地表 where (受理编号 not in (select top 151000 受理编号 from 土地

查不到记录
select top 100 * from 土地表 
where (受理编号 not in (select top 151000 受理编号 from 土地表 order by 受理编号)) order by 受理编号

明明151000-160000都是到值的,为什么返回是0呢,不懂。
数据库
[解决办法]
所以问你是否连续,如果不连续,你这not in就有可能查不出来
[解决办法]

引用:
Quote: 引用:

你这个是分页把,如果是2005及以后的版本,用这个试试:

select *
from
(
select *,
       row_number() over(order by 受理编号) as rownum 
from 土地表 
where 受理编号 between 151000 and 160000
)t
where rownum <= 100


用的是SQL 2005


哦 ,那就用这个代码试试:
select *
from
(
select *,
       row_number() over(order by 受理编号) as rownum 
from 土地表 
where 受理编号 between 151000 and 160000
)t
where rownum <= 100

[解决办法]
引用:
Quote: 引用:

Quote: 引用:

select top 100 * from 土地表 
where (受理编号 not in (select top 151000 受理编号 from 土地表 order by 受理编号)) order by 受理编号

明明151000-160000都是到值的,为什么返回是0呢,不懂。


这个有可能是因为,你的编号不连续,虽然151000-160000都有,但是总的编号也不超过151000,所以导致返回0。
--你看这个语句返回的值是多少,我觉得肯定小于151000
select  count(受理编号) from 土地表 
where 受理编号<= 151000 


代码返回是消息 245,级别 16,状态 1,第 2 行
在将 varchar 值 'C20040193961' 转换成数据类型 int 时失败。


改成这样呢:
select *
from
(
select *,
       row_number() over(order by 受理编号) as rownum 
from 土地表 
where 受理编号 between '151000' and '160000'
)t
where rownum <= 100

[解决办法]
一个列的数据应该固定,不然整死你的。先处理一下多个数据源再考虑查找吧

热点排行