我正在从SQL Server过渡到SAS。
在SQL服务器中,我们可以使用字符串比较,其中'abc'='aBc'将为真。
到目前为止SAS是否必须在每次比较中使用STRIP和UPPER每个字符串。
是否有一个选项可以设置为允许'abc'='aBc'为真?
我的Google-Fu让我失望了。
答案 0 :(得分:4)
我相信您正在寻找带有'i'修饰符的比较功能(对于忽略大小写)。当这返回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;
答案 1 :(得分:3)
您可以尝试使用Perl正则表达式的PRX函数。
' / ABC I&#39 /;将匹配任何字符串' abc'在任何情况下(因为关闭后的' i)
以PRXMATCH为例:
prxmatch('/abc/i', 'aBc')
将返回1,因为这是字符串出现的位置。
有关正则表达式的更多信息:https://www.cs.tut.fi/~jkorpela/perl/regexp.html