基於從agstudy的評論,在這裏是非常相似的一個ps2goat解決了,用一些簡單的示例數據:
data Master1;
length region $30;
input region;
datalines;
ALBANY-SXSX-TVTV
ALBANY2-SXSX-TVTV
SEATTLE-SXSX-TVTV
NEWYORK-SXSX-TVTV
run;
data map;
length market $10 code $1;
input market code;
datalines;
ALBANY A
SEATTLE B
run;
proc sql noprint;
create table a as
select a.*, b.Code
from Master1 a
left join map b
on a.region like '%' || trim(b.market) || '%';
quit;
請注意,這使用的連接符(||)而不是CAT功能。但是,CAT不起作用;要使用ps2goat的解決方案,您必須使用CATS功能刪除無關的空白。所以它駕駛室也寫爲
on a.region like CATS('%',b.market),'%');
另請注意使用單引號;製作字符常量時不要使用雙引號。宏處理器掃描雙引號內的文本以進行符號替換(並且百分號是觸發器)。
@BellevueBob我認爲[this](http://stackoverflow.com/questions/20484/use-a-like-clause-in-part-of-an-inner-join)是你正在尋找在純SQL中。 – agstudy
@agstudy完美!現在有一個解決方案。 – BellevueBob