Returns the position of the leftmost character by which two strings differ, or returns 0 if there is no difference.
Category: | Character |
Restriction: | I18N Level 0 functions are designed for use with Single Byte Character Sets (SBCS) only. |
Tip: | DBCS equivalent function is KCOMPARE in SAS National Language Support (NLS): Reference Guide. See also DBCS Compatibility . |
specifies a character constant, variable, or expression.
specifies a character constant, variable, or expression.
specifies a character string that can modify the action of the COMPARE function. You can use one or more of the following characters as a valid modifier:
i or I | ignores the case in string–1 and string–2. |
l or L | removes leading blanks in string–1 and string–2 before comparing the values. |
n or N | removes quotation marks from any argument that is a name literal and ignores the case of string–1 and string–2. A name literal is a name token that is expressed as a string within quotation marks, followed by the uppercase or lowercase letter n. Name literals enable you to use special characters (including blanks) that are not otherwise allowed in SAS data set or variable names. For COMPARE to recognize a string as a name literal, the first character must be a quotation mark. |
: (colon) | truncates the longer of string–1 or string–2 to the length of the shorter string, or to one, whichever is greater. If you do not specify this modifier, the shorter string is padded with blanks to the same length as the longer string. |
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;