楼主: dankdark
11967 3

请教模糊查找 like [推广有奖]

  • 0关注
  • 1粉丝

已卖:180份资源

硕士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
183 个
通用积分
10.3516
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1883 点
帖子
110
精华
0
在线时间
135 小时
注册时间
2005-6-23
最后登录
2024-3-30

楼主
dankdark 发表于 2010-9-19 14:01:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有2个文件,一个文件file1里有个variable 就叫name,另一个文件file2有个variable就叫term. 想找出所有的name里包含term字符的oberveration.写个一个程序如下“
DATA file2;
   length term term1 $28.;
   SET BADWORD0;
   TERM = '%'||TRIM(UPCASE(TERM1))||'%';
RUN;
proc sql;
   select  "(name like'" || trim(term) || "')" into :macrovar separated by " or " from file2;
create table matches as select *  from file1  where ¯ovar);
quit;
这个程序能找出在name里有term字符串。但是想要在match table 里也包括term一个column.又写了一个程序如下:
proc sql;
create table matches1 as
select file1.* , file2.term
from file1, file2
where file1.name like file2.term
order by 2;
quit;
但是2个程序的查找出的结果不一样, matches1 要比matches 少好些
请教问题出在哪里?怎么解决这个match的问题。 先谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:like proc sql Variable separate Select 请教 模糊 like

沙发
maidenhan 发表于 2010-9-19 14:48:36
生成matches1 的sql语句运行结果是一个笛卡尔积,所以会多出来

藤椅
soporaeternus 发表于 2010-9-19 14:55:15
where file1.name like file2.term
中file2.term多余的尾部空格使得like不匹配,试下compress(file2.term)
还有如果存在name同时包含多个term中的字符串,那么宏语句条件筛选仅出一条,inner join将筛选出多条(每个term一条)
所以开始感觉应该matches1 比matches记录多......
Let them be hard, but never unjust

板凳
可道可名 发表于 2012-9-3 21:24:22
楼主,解决了吗?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 20:27