2つの文字列を比較し、異なる文字が検出された場合には最も左にある文字の位置を返し、異なる文字が検出されない場合には0を返します。
カテゴリ: | 文字 |
制限事項: | この関数は、I18Nレベル0準拠しており、SBCSデータ向けに設計されています。この関数をDBCSまたはMBCSデータの処理に使用しないでください。 |
ヒント: | この関数に相当するDBCS関数は、SAS各国語サポート(NLS):リファレンスガイドのKCOMPAREです。DBCSの互換性も参照してください。 |
COMPARE関数のアクションを変更できる文字列を指定します。次の1つ以上の文字を有効な修飾子として使用できます。
iまたはI | string–1およびstring–2の大文字と小文字を区別しません。 |
lまたはL | 値を比較する前にstring–1およびstring–2の先頭の空白を削除します。 |
nまたはN | 名前リテラルの引数から引用符を削除し、string–1およびstring–2の大文字と小文字を区別しません。名前リテラルは、引用符内の文字列として表される名前トークンで、大文字または小文字のnが後に続きます。名前リテラルにより、SASデータセットまたは変数名に使用できない特殊文字(空白文字を含む)を使用できるようになります。COMPAREで文字列が名前リテラルとして認識されるように、最初の文字を引用符にする必要があります。 |
:(コロン) | string–1とstring–2の短い方の文字列の長さまたは1文字(どちらか大きい方)になるように長い方の文字列を切り捨てます。この修飾子を指定しない場合、長い方の文字列の長さと同じになるように短い方の文字列に空白が埋め込まれます。 |
data test; infile datalines missover; input string1 $char8. string2 $char8. modifiers $char8.; result=compare(string1, string2, modifiers); datalines; 1234567812345678 123 abc abc abx xyz abcdef aBc abc aBc AbC i abc abc abc abc l abc abx abc abx l ABC 'abc'n ABC 'abc'n n '$12'n $12 n '$12'n $12 nl '$12'n $12 ln ; proc print data=test; run;
data test2; pad1=compare('abc', 'abc '); pad2=compare('abc', 'abcdef '); truncate1=compare('abc', 'abcdef',':'); truncate2=compare('abcdef', 'abc',':'); blank=compare('', 'abc', ':'); run; proc print data=test2 noobs; run;