我有一个表,其中只有一列,如下所示:
fruit
------
appLe
applE
cheRry
Cherry
提供的列表是["aPple", "chErry"]
。
是否可以运行一个SQL查询来更新该表,如下所示?
fruit
------
aPple
aPple
chErry
chErry
基本上,如果行匹配的值为["aPple", "chErry"]
(大小写不敏感),则用该值替换它。
这里的关键约束(阻碍我的)是使用单个查询,所以我不能这样做
update my_table set fruit = 'aPple' where UPPER(fruit) = UPPER('aPple')
update my_table set fruit = 'chErry' where UPPER(fruit) = UPPER('chErry')
这将是2个查询。
发布于 2018-02-09 05:48:50
也许你想要这样:
UPDATE my_table
SET fruit = CASE WHEN fruit = 'apple' THEN 'aPple'
WHEN fruit = 'cherry' THEN 'chErry'
END
发布于 2018-02-09 05:28:47
默认情况下,SQL Server具有不区分大小写的比较。你试过了吗?
update t
set fruit = 'aPple'
where fruit = 'aPple';
发布于 2018-02-09 05:53:22
在更新中使用case语句:
UPDATE my_table
SET fruit = CASE
WHEN UPPER(fruit) = UPPER('aPple') THEN 'aPple'
WHEN UPPER(fruit) = UPPER('chErry') THEN 'chErry'
END
https://stackoverflow.com/questions/48695050
复制相似问题