有没有更优雅的方法将where语句压缩到一系列具有索引名称的变量上?
例如,而不是:
create table table_cpt_43644
as select *
from master_table
where icd_proc_cd_1 = '43644'
or icd_proc_cd_2 = '43644'
or icd_proc_cd_3 = '43644'
...
or icd_proc_cd_28 = '43644';
使用以下内容(alas不起作用):
create table table_cpt43644
as select *
from master_table
where icd_proc_cd_1-icd_proc_cd_28 = '43644';
1条答案
按热度按时间bzzcjhmw1#
使用时稍微短一点
array_contains
:如果您的表基于csv文件,您可以重新定义表ddl,使用regexserde并选择icd\u proc\u cd\u 1-icd\u proc\u cd\u 28作为单个逗号分隔列。然后你可以用更短的溶液
array_contains(split(column_concatenated, ','),'43644')
. 使用rlike
在这种情况下也是可能的。尽管第一种解决方案更加灵活。