获取“何时更新案例”语句以进行不完全匹配?

时间:2018-08-06 13:16:49

标签: postgresql

对标题感到困惑,不确定技术术语表示歉意。我正在获取单元格内的特定文本,以触发不太敏感的匹配来更新行。因此,当单元格中有一个“ CH-%”时,它会查找任何“ CH-%”,然后返回该值,而不是匹配该特定的“ CH-N”或“ CH-S”。其他列也匹配。

这是我的代码:

update t_vessel_list_ballast
SET voyage_time = cast(b.travel_time as INTEGER),
time_source = 'region'
FROM t1_region b
WHERE CASE 
WHEN cast(b.travel_time as integer) > 100 THEN voyage_time = null
WHEN depart_region ilike 'CH-%' then 
    ('CH-%' ilike b.region 
    AND t_vessel_list_ballast.dest_region = b.region_arrive
    AND t_vessel_list_ballast.voyage_time is null)
    OR (t_vessel_list_ballast.dest_region = b.region 
    AND 'CH-%' ilike b.region_arrive
    AND t_vessel_list_ballast.voyage_time is null)
ELSE
    (t_vessel_list_ballast.depart_region = b.region 
AND t_vessel_list_ballast.dest_region = b.region_arrive
AND t_vessel_list_ballast.voyage_time is null)
OR (t_vessel_list_ballast.dest_region = b.region 
AND t_vessel_list_ballast.depart_region = b.region_arrive
AND t_vessel_list_ballast.voyage_time is null) END;
--end

此代码将运行,没有任何错误,但不会达到预期的结果。关于如何使它执行我要问的任何建议?

1 个答案:

答案 0 :(得分:0)

我相信您的情况很落后。

更改

'CH-%' ilike b.region 

b.region ilike 'CH-%'