COMPARE Function


Returns the position of the leftmost character by which two strings differ , or returns 0 if there is no difference

Category: Character

Syntax

COMPARE ( string-1 , string-2 <, modifiers >)

Arguments

string-1

  • specifies a character constant, variable, or expression.

string-2

  • specifies a character constant, variable, or expression.

modifiers

  • 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 an n-literal and ignores the case of string-1 and string-2 .

    : ( 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.

  • TIP: COMPARE ignores blanks that are used as modifiers.

Details

The order in which the modifiers appear in the COMPARE function is relevant.

  • 'LN' first removes leading blanks from each string, and then removes quotation marks from n-literals.

  • 'NL' first removes quotation marks from n-literals, and then removes leading blanks from each string.

In the COMPARE function, if string-1 and string-2 do not differ, COMPARE returns a value of zero. If the arguments differ

  • the sign of the result is negative if string-1 precedes string-2 in a sort sequence, and positive if string-1 follows string-2 in a sort sequence

  • the magnitude of the result is equal to the position of the leftmost character at which the strings differ.

Examples

Example 1: Understanding the Order of Comparisons When Comparing Two Strings

The following example compares two strings by using the COMPARE function.

 options pageno=1 nodate ls=80 ps=60;  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    ''n     n    ''n     nl    ''n     ln  ;  proc print data=test;  run; 

The following output shows the results.

Output 4.19: Results of Comparing Two Strings by Using the COMPARE Function
start example
 The SAS System                                  1   Obs    string1     string2      modifiers    result     1    12345678    12345678                     0     2    123         abc   1     3    abc         abx   3     4    xyz         abcdef                       1     5    aBc         abc   2     6    aBc         AbC             i            0     7       abc      abc   1     8       abc      abc             l            0     9     abc           abx                       2    10     abc           abx          l   3    11    ABC         'abc'n                       1    12    ABC         'abc'n          n            0    13     ''n                  n   1    14     ''n                  nl           1    15     ''n                  ln           0 
end example
 

Example 2: Truncating Strings Using the COMPARE Function

The following example uses the : (colon) modifier to truncate strings.

 options pageno=1 nodate ls=80 pagesize=60;  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; 

The following output shows the results.

Output 4.20: Results of Using the Truncation Modifier
start example
 The SAS System                                       1    pad1    pad2      truncate1      truncate2      blank      0   4           0              0   1 
end example
 

See Also

Functions and CALL Routines:

  • 'COMPGED Function' on page 449

  • 'COMPLEV Function' on page 454

  • 'CALL COMPCOST Routine' on page 342




SAS 9.1 Language Reference Dictionary, Volumes 1, 2 and 3
SAS 9.1 Language Reference Dictionary, Volumes 1, 2 and 3
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 704

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net