次の方法で共有


SET EXACT コマンド (指定された条件を正確に設定するコマンド)

長さが異なる 2 つの文字列を比較するための規則を指定します。

構文

  
SET EXACT ON | OFF  

論争

オン
式が文字と等しい文字に一致する必要があることを指定します。 式の末尾の空白は、比較では無視されます。 比較のために、2 つの式の短い方は、長い式の長さに一致するように、右側に空白が埋め込まれます。

オフ
(既定値)。等価であるためには、右側の式の末尾に達するまで、式が文字の文字と一致する必要があることを指定します。

注釈

両方の文字列の長さが同じ場合、SET EXACT 設定は無効です。

文字列の比較

Visual FoxPro には、等価性をテストする 2 つの関係演算子があります。

= 演算子は、同じ型の 2 つの値の比較を実行します。 この演算子は、文字、数値、日付、および論理データの比較に適しています。

ただし、文字式を = 演算子と比較すると、結果が期待どおりではない可能性があります。 文字式は、左から右の文字の文字と比較され、式の 1 つが他方と等しくないか、= 演算子の右側の式の末尾に達するまで (SET EXACT OFF)、または両方の式の末尾に到達するまで (SET EXACT ON) になります。

== 演算子は、文字データの正確な比較が必要な場合に使用できます。 2 つの文字式が == 演算子と比較される場合、== 演算子の両側の式には、等しいと見なされるためには、空白を含め、まったく同じ文字が含まれている必要があります。 == を使用して文字列を比較する場合、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 コマンド