COMPARE 関数を使用すると、2 つのストリングを比較して、その結果を表す数値を返すことができます。
string1, string2 で、比較するストリングを指定します。
justification は、左揃え比較の場合は L、右揃え比較の場合は R のいずれかです。これら以外の値を指定すると、実行時に警告が発生して 0 が返されます。
比較は、左揃えまたは右揃えで実行できます。 右揃えの比較では、指定したストリング内の数値サブストリングが数値として比較されます。 数値サブストリングは、両方のストリングで同じ文字位置から始まっている必要があります。 例えば、ストリング AB100 と AB99 を右揃えで比較した場合、100 が 99 より大きいため、AB100 は AB99 より大きいと判断されます。一方、AC99 と AB100 を右揃えで比較した場合、C が B より大きいため、AC99 の方が大きいと判断されます。
位置揃え (L または R) を指定しないと、デフォルトで左揃えとなります。
NLS が有効になっている場合、COMPARE 関数によるストリングの比較には、ソート・アルゴリズムと NLS.LC.COLLATE ファイルに指定された照合規則が使われます。 照合について詳しくは、「WebSphere DataStage 各国語サポート・ガイド」を参照してください。
次の例では、ストリング AB99 と AB100 を右揃えで比較し、その結果を表示しています。 この場合、結果表示は -1 です。
PRINT COMPARE('AB99','AB100','R')
NLS モードの例を次に示します。 ストリング anilno と anillo を比較しています。結果は 1 となります。続いて、ロケールをスペインに変更して比較し直しています。 その結果は -1 となります。
$INCLUDE UNIVERSE.INCLUDE UVNLSLOC.H x=SETLOCALE( UVLC$ALL, 'OFF' ) PRINT COMPARE( 'anilno', 'anillo', 'L' ) x=SETLOCALE( UVLC$ALL, 'ES-SPANISH' ) PRINT COMPARE( 'anilno', 'anillo', 'L' )
1 -1