我没有使用以下使用LIKE的查询获得所需的结果。我可以使用WHERE子句吗?
UPDATE TABLE
SET ALPHA = 'ABC'
WHERE ALPHA LIKE 'ABC%'
UPDATE TABLE
SET ALPHA = 'ABCCC'
WHERE ALPHA LIKE ‘ABCC%'
Bt90Abc Abc
bt91Abc Abc
bt19abcCC ABCCC
bt16abcSTAT ABC
答案 0 :(得分:1)
您可以使用CASE
语句执行更新:
update yourtable
set alpha = case
when alpha like '%abcc%' then 'ABCC'
when alpha like '%abc%' then 'ABC'
else alpha
end
where alpha like '%abc%';
这将使用您的值更新符合LIKE
条件的所有行。如果没有,则alpha
值不会更新。
答案 1 :(得分:0)
从粗略的一瞥看来,你可能会遇到两个突出的问题。
- 字符串比较区分大小写,您正在搜索大写字母,而它可能包含小写字母。尝试在where子句中围绕列抛出UPPER。
- 其次,您似乎正在搜索不以ABC开头的ABC字符串。在这种情况下,你应该使用'%ABC%'作为你的where子句。
为了获得更好的输入,您应该提供有关您的问题的更多信息。
答案 2 :(得分:0)
阅读你的评论:
UPDATE TABLE
SET ALPHA = CASE WHEN ALPHA IN ('bt90abc','bt91abc') THEN 'ABC'
WHEN ALPHA IN ('bt19abc') THEN 'ABCCC'
ELSE ALPHA END
WHERE ALPHA IN ('bt90abc','bt91abc','bt19abc')