Update acc
SET acc.lat = CASE
WHEN acc.lat <> '' THEN INSERT (acc.lat,3,0,'°')
WHEN acc.lat = '' THEN acc.lat = ''
WHEN acc.lat LIKE '°' THEN (do nothing)
一切正常,但我无法忽略°
所以每次运行时都会添加另一个°
答案 0 :(得分:0)
对于你的上一个条款,你不希望它成为
WHEN acc.lat LIKE '%°' THEN (do nothing)
所以它匹配以°
结尾的任何字符串?
答案 1 :(得分:0)
您可以通过引用原始值来执行case
中的“忽略”:
Update acc
SET acc.lat = (CASE WHEN acc.lat <> '' THEN INSERT(acc.lat, 3, 0, '°')
WHEN acc.lat = '' THEN ''
WHEN acc.lat LIKE '°' THEN acc.lat
END);
这会将不匹配的值设置为NULL
。您可能打算这样做:
update acc
then lat = concat(lat, '°')
where lat not like '%°' and lat <> '';
这会将符号放在具有值的纬度的末尾。