如何解决根据存储在其他数据库中的已知变量拆分行
我在 SAS,所以代码不是纯 MySQL。
我有一张这样的桌子
ID Fruits
1 Apple-Water-melon
2 Pine-Apple-Kiwi
还有另一种带有各种不同水果的
ID Fruits
x Apple
x Kiwi
x Pine-apple
x Water-melon
我怎么会有这样的决赛桌?
ID Fruits
1 Apple
1 Water-melon
2 Pine-apple
2 Kiwi
是否可以解析第一个表并拆分与第二个表中找到的变量匹配的变量?
谢谢,
解决方法
您可以使用 FINDW() 函数检查 FRUIT 值是否出现在 FRUITS 列表中。
data have ;
input ID Fruits $40.;
cards;
1 Apple-Water-melon
2 Pine-Apple-Kiwi
;
data list;
fruitid +1 ;
input fruit $40. ;
cards;
Apple
Kiwi
Pine-apple
Water-melon
;
proc sql ;
create table want as
select a.*,b.*
from have a
left join list b
on 0 ne findw(Fruits,fruit,'-','ti')
;
quit;
结果
Obs ID Fruits fruitid fruit
1 1 Apple-Water-melon 1 Apple
2 2 Pine-Apple-Kiwi 1 Apple
3 2 Pine-Apple-Kiwi 2 Kiwi
4 2 Pine-Apple-Kiwi 3 Pine-apple
5 1 Apple-Water-melon 4 Water-melon
您想如何消除嵌入在 PINE-APPLE 中间的 APPLE 的匹配项?是否要优先考虑多个单词水果名称,然后将这些水果从水果列表字符串中剔除?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。