0
我有一個簡短的向量,我希望能夠在PROC SQL中的case語句中使用。我沒有從我的研究中找到任何東西。讓我用一個例子來解釋。是否可以在PROC SQL case語句中使用向量?
我的手機品牌的載體:
phone_brand
nokia
samsung
apple
microsoft
sony
motorolla
我想要與更多的數據的另一個表中的PROC SQL語句,但我想創建一個指標,會告訴我,如果的phone_brand場該表與矩陣匹配。因此,代碼的想法是這樣的:
proc sql;
create table test as
select id
,date
,case when index(home.phone_brand,'vector values') > 0 then 1 else 0
end as vector_ind
from ods.home;
quit;
我需要這個,因爲我有載體將是動態的,但沒有任何排序鍵來識別品牌。所以我必須使用索引函數來搜索匹配。如果我不能找到一種方法,與我覺得我唯一的選擇將是手動每次更新代碼的矢量的變化是這樣的數據矢量做到這一點:
,case when index(home.phone_brand,'nokia') > 0 then 1
when index(home.phone_brand,'samsung) > 0 then 1
when index(home.phone_brand,'apple) > 0 then 1
.......
else 0 end as vector_ind
這將是繁瑣,如果矢量中的品牌數量顯着增加,則難以擴展。
這完美的作品!這隻能找到完全匹配嗎?我通常使用'索引'來解決數據中的不一致(不一致的縮寫和拼寫錯誤)。你知道我在這段代碼中如何調整? – Jarom
IN是完全匹配,但您可以在(%upcase(&vector))中使用'upcase(name)'來避免大小寫問題。 – Tom