SEEK 命令

在索引字符域中搜索第一个匹配指定字符表达式或字符串的值。

语法

SEEK 搜索表达式

参数

名称 描述

搜索表达式

要搜索的字符表达式。

您可以使用任何有效的字符表达式、字符变量或带引号的字符串。搜索表达式区分大小写,并且可以包括前导空格(它们被视为字符)。

示例

找到域中第一个匹配字符变量的值

“卡号”域已被定义为字符域,并且按升序索引。

以下示例查找该域中完全匹配 v_card_num 变量中包含的值或者以该值开头的第一个值。

INDEX ON 卡号 TO "卡号" OPEN
SET INDEX TO "卡号"
SEEK v_卡号

查找域中第一个匹配字符串的值

“卡号”域已被定义为字符域,并且按升序索引。

以下示例查找该域中完全匹配字符字面量 "AB-123" 或者以该值开头的第一个值:

INDEX ON 卡号 TO "卡号" OPEN
SET INDEX TO "卡号"
SEEK "AB-123"

备注

有关此命令工作方式的详细信息,请参阅选择第一个匹配记录

工作原理

使用 SEEK 命令可直接移到表中在其索引字符域中包含指定搜索表达式的首个记录。

  • 如果找到搜索表达式,则选择该表中的首个匹配记录。
  • 如果找不到搜索表达式则显示消息“无索引匹配键”,并且将该表定位到第一个具有比搜索表达式更大的值的记录。

    如果在索引域中没有大于搜索表达式的值,则表会定位到第一个记录。

需要索引

要使用 SEEK 要搜索字符域,您必须首先按升序对该域进行索引。如果多个字符域按升序排序,则只搜索在索引中指定的第一个域。

不能使用 SEEK 搜索非字符索引域或按降序索引的字符域。

支持不完全匹配

支持不完全匹配。搜索表达式可以被包含在索引域中更长的值中。但是,搜索表达式必须出现在该域的开头才能形成匹配。

SEEK 命令不受精确字符比较选项 (SET EXACT ON/OFF) 的影响。