SET EXACT 命令

指定用于比较两个不同长度的字符串的规则。

语法

  
SET EXACT ON | OFF  

参数

ON
指定表达式必须匹配字符才能等效的字符。 对于比较,将忽略表达式中的任何尾随空白。 为了进行比较,两个表达式中较短的在右侧填充空格,以匹配较长表达式的长度。

OFF
(Default.) 指定表达式必须匹配字符的字符,直到到达右侧表达式的末尾,才能等效。

注解

如果两个字符串的长度相同,SET EXACT 设置不起作用。

字符串比较

Visual FoxPro 有两个用于测试相等性的关系运算符。

= 运算符在相同类型的两个值之间执行比较。 此运算符适用于比较字符、数字、日期和逻辑数据。

但是,将字符表达式与 = 运算符进行比较时,结果可能不完全符合预期。 字符表达式是字符从左到右比较字符,直到其中一个表达式不等于另一个表达式,直到到达 = 运算符右侧的表达式的末尾 (SET EXACT OFF) ,或直到两个表达式的末尾到达 (SET EXACT ON) 。

当需要对字符数据进行精确比较时,可以使用 == 运算符。 如果将两个字符表达式与 == 运算符进行比较,则 == 运算符两侧的表达式必须包含完全相同的字符(包括空格),才能被视为相等。 使用 ==比较字符串时,将忽略 SET EXACT 设置。

下表显示了运算符的选择和 SET EXACT 设置如何影响比较。 (下划线表示空格。)

比较 = EXACT OFF = EXACT ON == EXACT ON 或 OFF
“abc” = “abc” 匹配 匹配 匹配
“ab” = “abc” 无匹配 无匹配 无匹配
“abc” = “ab” 匹配 无匹配 无匹配
“abc” = “ab_” 无匹配 无匹配 无匹配
“ab” = “ab_” 无匹配 匹配 无匹配
“ab_” = “ab” 匹配 匹配 无匹配
“” = “ab” 无匹配 无匹配 无匹配
“ab” = “” 匹配 无匹配 无匹配
"__" = "" 匹配 匹配 无匹配
"" = "___" 无匹配 匹配 无匹配
TRIM (“___”) = “” 匹配 匹配 匹配
“” = TRIM (“___”) 匹配 匹配 匹配

另请参阅

SET ANSI 命令