我为我创建了一个具有必要条件的脚本。它运作正常。 但我需要在许多行上应用此脚本。而且不仅id是15
。
UPDATE my_table SET my_field =
(SELECT
CASE WHEN position('a' in my_field) = 0 THEN my_field
WHEN position('a' in my_field) = 1 THEN substring(my_field from 1 for 5)
WHEN position('a' in my_field) > 1 THEN substring(my_field from 2 for 5)
END
FROM my_table WHERE id = 15)
WHERE id = 15
我想在特定条件执行的行上应用此脚本。
例如,我想写WHERE my_field LIKE '%ab%'
。 但问题是我已经选择了。因此,我可以应用单独的脚本来获取所有必需的ID,然后手动应用此脚本替换单独脚本中的单个ID。但我想通过一个查询自动应用它。
答案 0 :(得分:1)
比你想象的容易:)
试试这个:
UPDATE my_table
SET my_field =
CASE
WHEN position('a' in my_field) = 0 THEN my_field
WHEN position('a' in my_field) = 1 THEN substring(my_field from 1 for 5)
WHEN position('a' in my_field) > 1 THEN substring(my_field from 2 for 5)
END