在SAS中应用like运算符

您所在的位置:网站首页 sas写sql 在SAS中应用like运算符

在SAS中应用like运算符

2024-04-17 01:41| 来源: 网络整理| 查看: 265

这是我看到的一篇比较详细的介绍SAS中like运算符的应用的文章,但也有点啰嗦了,特整理在此,希望对大家有帮助。

如果你经常需要基于关键字的字符或自由文本来搜索数据或取得数据的子集,那么本文演示的如何使用带有通配符的LIKE运算符将非常有用,这样就可以对数据进行更深入的关键字搜索。

本文中使用SASHELP库中的以下数据集来获取各种示例:SHOES - 虚拟鞋子公司数据CARS - 汽车数据ORSALES - Orion开始运动和户外销售数据

选择完全的匹配

让我们从一个简单的例子开始,我们将在WORK库中创建一个名为MENS_PRODUCTS的新数据集,其中包含来自SASHELP.SHOES的所有记录,其中产品名称为“Men's Dress”。

请注意,这里使用双引号(“),因为我们需要在”Men's Dress“中包含撇号。当文本字符串不包含撇号或其他单引号时,可以使用单引号。语法如下:

data mens_products; set sashelp.shoes; where product like "Men's Dress"; run;

2. 选择以某字符串开头的匹配

当引入通配符的概念时,LIKE运算符开始变得有用。在SAS中,百分号(%)用作通配符,用于对以某些字符串开头,结尾或甚至包含某些字符串的字符变量进行关键字搜索。

在前面的例子的基础上,让我们现在选择SHOES的所有记录,这些记录的产品以“Men's”开头。为此,我们使用与以前相同的语法,但现在在引号内的“Men's”一词后添加通配符(%)符号:

data mens_products; set sashelp.shoes; where product like "Men's%"; run;

得到的结果如下:

3. 选择以某字符串结尾的匹配

类似地,可以将通配符(%)移动到引号中字符串的前面,以查找包含以指定字符串结尾的变量的记录。

在此示例中,我们希望将所有这些记录保存在新创建的数据集CASUAL中,该数据集的产品以“Casual”结尾。为实现此目的,在引号中添加Casual,并在“Casual”前面放置通配符(%):

data casual; set sashelp.shoes; where product like '%Casual'; run;

4. 选择包含某字符串的匹配

除了能够选择以字符串开头或以结尾的记录之外,还可以检索在任何位置包含字符串的记录。

例如,在SASHELP.CARS数据集中,具有2个门的汽车在模型名称中的某处包含字符串“2dr”。有时在字符串的末尾会找到“2dr”,或者有时它位于字符串的中间,要从SASHELP.CARS中检索2门模型的所有记录,我们可以在WHERE语句中的搜索词“2dr”之前和之后添加通配符(%),如下所示:

data two_door_cars; set sashelp.cars; where model like '%2dr%'; run;

结果如下:

5. 调整大小写不同的匹配:

使用LIKE运算符进行字符串搜索时,请务必记住引号中的搜索项区分大小写。

如果您知道数据集中的值包含大小写值的混合,或者您不确定数据集中值的用例,则可以将UPPERCASE或LOWERCASE函数与WHERE语句和LIKE运算符结合使用:

data mens_products; set sashelp.shoes; where uppercase(product) like "MEN%"; run; data mens_products; set sashelp.shoes; where lowcase(product) like "men%"; run;

上面这几点基本上能涵盖大部分实际应用中碰到的情况啦。当然,like在proc sql中的应用也是一样的。

原文链接(特别啰嗦的那个):



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3