单列中的SQL多标准更新查询

时间:2014-06-14 14:59:20

标签: sql ms-access

大家好我对SQL编码真的很陌生,我之前使用过很多VBA,但我对SQL有点难过。

我有一个目前拥有大约20,000条记录的数据库。为了保持简单,我有一个名为Request的列,每个记录显示Confirmation of coverDecline Letter

我需要将每条记录更新为新的措辞:

Confirmation of cover然后更新为New Confirmation of Cover Decline Letter更新到New Decline Letter等等

如果我使用向导,它允许我一次更新1个请求原因类型,但我希望能够为每个请求原因完成此操作。

我希望这是有道理的。

亲切的问候 杰米

3 个答案:

答案 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");