SET EXACT 命令
指定比較兩個不同長度字串的規則。
語法
SET EXACT ON | OFF
引數
開啟
指定表達式必須符合字元,字元才能相等。 比較會忽略表達式中的任何尾端空白。 為了比較,兩個表達式的較短會在右邊填補空白,以符合較長表達式的長度。
OFF
(Default.) 指定,表達式必須符合字元的字元,直到到達右邊的表達式結尾為止。
備註
如果兩個字串的長度相同,SET EXACT 設定就沒有任何作用。
字串比較
Visual FoxPro 有兩個關係運算符,可測試是否相等。
= 運算子會在相同類型的兩個值之間執行比較。 此運算子適用於比較字元、數值、日期和邏輯數據。
不過,當您比較字元表達式與 = 運算符時,結果可能不是您預期的確切結果。 字元表達式會比較字元的字元,直到其中一個表達式不等於另一個表達式為止,直到到達 = 運算符右邊的表達式結尾 (SET EXACT OFF) ,或直到到達兩個表達式的結尾 (SET EXACT ON) 為止。
需要確切比較字元數據時,可以使用 == 運算符。 如果兩個字元表達式與 == 運算符進行比較,== 運算符兩端的表達式必須包含完全相同的字元,包括空白,才能視為相等。 使用 == 比較字元字串時,會忽略 SET EXACT 設定。
下表顯示運算子的選擇和SET EXACT 設定如何影響比較。 (底線代表空格。)
比較 | = 完全關閉 | = 精確 ON | == EXACT ON 或 OFF |
---|---|---|---|
“abc” = “abc” | 相符項目 | 相符項目 | 相符項目 |
“ab” = “abc” | 沒有符合的結果 | 沒有符合的結果 | 沒有符合的結果 |
“abc” = “ab” | 相符項目 | 沒有符合的結果 | 沒有符合的結果 |
“abc” = “ab_” | 沒有符合的結果 | 沒有符合的結果 | 沒有符合的結果 |
“ab” = “ab_” | 沒有符合的結果 | 相符項目 | 沒有符合的結果 |
“ab_” = “ab” | 相符項目 | 相符項目 | 沒有符合的結果 |
“” = “ab” | 沒有符合的結果 | 沒有符合的結果 | 沒有符合的結果 |
“ab” = “” | 相符項目 | 沒有符合的結果 | 沒有符合的結果 |
"__" = "" | 相符項目 | 相符項目 | 沒有符合的結果 |
"" = "___" | 沒有符合的結果 | 相符項目 | 沒有符合的結果 |
TRIM (“___”) = “” | 相符項目 | 相符項目 | 相符項目 |
“” = TRIM (“___”) | 相符項目 | 相符項目 | 相符項目 |