大家好我对SQL编码真的很陌生,我之前使用过很多VBA,但我对SQL有点难过。
我有一个目前拥有大约20,000条记录的数据库。为了保持简单,我有一个名为Request
的列,每个记录显示Confirmation of cover
或Decline Letter
等
我需要将每条记录更新为新的措辞:
Confirmation of cover
然后更新为New Confirmation of Cover
Decline Letter
更新到New Decline Letter
等等
如果我使用向导,它允许我一次更新1个请求原因类型,但我希望能够为每个请求原因完成此操作。
我希望这是有道理的。
亲切的问候 杰米
答案 0 :(得分:0)
首先,让一个只包含几个可能的已知字符串的列是个坏主意。考虑为该列创建一个新表,将ID与两种可能性相关联。
要更新多行,请执行以下操作:
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
This is from the W3School documentation
如果要避免必须遍历整个数据库,而是为请求创建一个新表,并使每一行成为可能的请求字符串,并使用外键约束引用该行。
答案 1 :(得分:0)
如果是Microsoft SQL Server,您可以尝试以下(但对于SQL的其他变体也是如此):
UPDATE <Your Table Name>
SET Request = CASE WHEN 'Confirmation of cover' THEN 'New Confirmation of Cover'
WHEN 'Decline Letter' THEN 'New Decline Letter'
ELSE Request END
您可以使用When
子句添加更多条件Else
部分如果不符合您的任何条件,则保留原始值。
答案 2 :(得分:0)
在Access中,我认为你可以这样做:
UPDATE <Your Table Name>
SET Request = "New " & Request
WHERE Request in ("Confirmation of cover", "Decline Letter");