指定比较不同长度两个字符串时,Visual FoxPro 使用的规则。
语法
SET EXACT ON | OFF
参数
ON
指定相等的表达式必须是每个字符都相匹配。比较时,忽略表达式结尾的空格。比较两个表达式时,在较短的一个的右边加上空格,以使它与较长表达式的长度相匹配。
OFF
(默认值)指定必须是右端表达式结尾前的每个字符都相匹配,才是相等的表达式。
说明
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 EXACT 的作用域是当前数据工作期。