我正在从SQL Server转换到SAS。SAS字符串比较
在SQL服务器中,我们可以避开字符串比较,其中'abc'='aBc'为真。
是SAS到目前为止我不得不每次比较STRIP和UPPER每串。
是否有一个选项可以设置为允许'abc'='aBc'为真?
我的Google-Fu失败了我。
我正在从SQL Server转换到SAS。SAS字符串比较
在SQL服务器中,我们可以避开字符串比较,其中'abc'='aBc'为真。
是SAS到目前为止我不得不每次比较STRIP和UPPER每串。
是否有一个选项可以设置为允许'abc'='aBc'为真?
我的Google-Fu失败了我。
我相信你正在寻找的 '我' 修饰的比较功能(忽略大小写)。当这返回一个0就有一个匹配。
(在这里参见第70页:http://support.sas.com/publishing/pubcat/chaps/59343.pdf)
data a;
input string1 $ string2 $;
datalines;
abc aBc
cba CBA
AbC ABC
AC AbC
BCA CAb
;
run;
data b;
set a;
c = compare(string1,string2);
d = compare(string1,string2,'i');
run;
proc print noobs;
where d = 0;
var string1 string2;
run;
您可以尝试使用Perl正则表达式的PRX函数。
'/ ABC/I' 在任何情况下匹配与串 'ABC' 什么(因为关闭之后 'I'/)
使用PRXMATCH作为一个例子:
prxmatch('/abc/i', 'aBc')
将返回1,因为这是字符串出现的位置。