我正在尝试使用以下示例数据比较蜂巢中的2个列值
m_bldg_id bldg_id Indicator
1911 1968 19657 19658 Not resident
19657 1968 19657 19658 resident
19658 1968 19657 19658 resident
1968 1968 19657 19658 resident
19887 1968 19887 19658 16755 17543 34213 resident
11132 1968 19887 19658 16755 17543 34213 Not resident
我需要写一个case语句来识别指标,如果m_bldg_id像bldg_id一样,那么指标是常驻的。因此对于上述数据的第一行,1911的m_bldg_id不在1968 19657 19658中,因此指标值不在常驻在第二行中m_bldg_id的值为19657 bldg_id值为'1968 19657 19658',因此它应该是常驻的。
我尝试过
CASE WHEN m_bldg_id like %bldg_id% then 'resident' else 'not resident'
无效,请帮助
答案 0 :(得分:0)
将'%'
与要比较的字段连在一起
select
m_bldg_id,
bldg_id,
case
when m_bldg_id like '%' + bldg_id + '%' then 'resident'
else 'Non resident'
end as Indicator
from
tablename
答案 1 :(得分:0)
使用split()
+ array_contains()
:
select
m_bldg_id,
bldg_id,
case
when array_contains(split(bldg_id,' '),m_bldg_id ) then 'resident'
else 'Non resident'
end as Indicator
from tablename;
或使用instr()
函数:
case when instr(bldg_id, m_bldg_id) > 0 then 'resident' else 'Non resident' end as Indicator