Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从索引中获取指向行的指针_Sql_Sql Server - Fatal编程技术网

Sql 从索引中获取指向行的指针

Sql 从索引中获取指向行的指针,sql,sql-server,Sql,Sql Server,有没有办法从索引中获取指向行的指针?还是有更好的方法来做到这一点。让我解释一下 表:索引为图书类型+图书编号+页码的图书。所有这些字段都是字符并填充以填充其固定大小 其他字段包括作者、ocr_文本和日期 现在我们做一个: select author, ocr_text, date from books where author='jim' and ocr_text contains 'red oak tree' and between(

有没有办法从索引中获取指向行的指针?还是有更好的方法来做到这一点。让我解释一下

表:索引为图书类型+图书编号+页码的图书。所有这些字段都是字符并填充以填充其固定大小

其他字段包括作者、ocr_文本和日期

现在我们做一个:

select 
   author, 
   ocr_text, 
   date 
from 
   books 
where 
   author='jim' 
   and ocr_text contains 'red oak tree' 
   and between(date, '01/01/2013', '12/15/2013') order by author
。。。是的,我知道有些语法是不正确的,但无论如何,我会得到一个与查询匹配的结果集。现在让我们假设我们的结果集有:

Deed Book     | 232 | Page 124    
Deed Book     | 436 | Page 444    
Mortgage Book | 474 | Page 654
请注意,这些结果与查询要求的匹配。。。到目前为止没有问题,因为它给了我们我们所期望的

我们的表单有按钮FIRST HIT、PREV HIT、NEXT HIT和LAST HIT,它们遍历上面列表中匹配的查询命中。 我们的表单还有另外两个按钮“上一页”和“下一页”,用于模拟翻页,而不考虑查询结果。换句话说,假设我们首先到达契据簿232第124页,然后按下PREV Page(上一页)按钮,我们应该立即看到该页的左边。还要注意的是,无论我们看到的是哪一页,按上一页总是会将我们带到上一页,而按下一页总是会将我们带到下一页,而不考虑查询结果。我们导航到的下一页和上一页可能在查询结果中,也可能不在查询结果中,因为它按库顺序导航库,而不考虑查询结果。上面提到的索引是图书馆订单索引

现在,假设我们想看一下契据簿232第124页第1小节之前的页面,假设它存在,也可以是契据簿232第123页第1小节,如果124和99之间没有页面的话,也可以是契据簿232第99页第1小节

我想不出有什么方法可以让我从任何给定的位置找到库顺序中的上一行,因为它唯一的关系是它们在索引中彼此相邻,没有其他关系。在动态环境中,除了读取这个库索引外,我看不到主键/外键或任何其他列关系在不断输入新项的动态环境中起作用。因此,除非有人想出了什么办法,否则我认为这项工作的唯一方式就是以某种方式读取库索引,寻找指向上一行和下一行的指针

是的,我知道SQL Server没有任何记录的概念。我来自一个VFP背景,在那里这类东西很容易


谢谢,Stanley这类东西通常不需要索引

普苏埃多:

FIRST HIT = SELECT the MIN(whatever)
PREV HIT = SELECT the MAX(whatever) that is < the CURRENT(whatever)
NEXT HIT = SELECT the MIN(whatever) that is > the CURRENT(whatever)
LAST HIT = SELECT the MAX(whatever)
例如,PREV HIT:

select 
   book,
   max(page)
from 
   books 
where 
   book = @book --(@book is the current book -- passed-in as a parameter)
   and page < @page --(@page is the current page -- passed-in as a parameter)

您已经对3键进行了索引,但是您已经将页码存储为CHAR。抓取一本书的所有结果并按页码排序是很简单的。这些第一次点击、上一次点击、下一次点击和最后一次点击按钮代码不是问题所在。PrevPage和NextPage按钮必须选择与用户查询无关的页面。重新审视这个问题,我已经详细解释过了。谢谢Stanley@StanleyBarnett-您已将问题标记为sql-这就是我用sql回答问题的原因。如果您需要按钮方面的帮助,而不是sql,那么您需要指出您正在使用的技术/您希望在哪一层解决问题。Asp.net?什么类型的控件-listview?gridview?风俗