我希望在update语句中比较两个字符串字段。如果存在文本匹配,则语句将字段更新为1,否则更新为0。问题是说BLPU_TEXT是' 55'然后BLPU_PAO_SAO是' XX55XXX'它返回0.但如果有任何匹配,我希望它返回1.
UPDATE NAG_ANALYSIS.AA3_ALL N
SET N.CARTO_BLPU_BLPU_MATCH =
(CASE WHEN N.BLPU_TEXT LIKE '%'||N.BLPU_PAO_SAO||'%'
THEN 1 ELSE 0 END);
非常感谢你的时间
答案 0 :(得分:3)
因为您正在寻找' 55'在' XX55XXX'中,您需要切换WHEN
中的变量:
这
WHEN N.BLPU_TEXT LIKE '%'||N.BLPU_PAO_SAO||'%'
到
WHEN N.BLPU_PAO_SAO LIKE '%'||N.BLPU_TEXT||'%'
这将转为WHEN 'XX55XXX' LIKE '%55%'
。
它就像常规SQL SELECT [...] WHERE y LIKE z
一样,在每个列z
值中搜索模式y
。