2016-03-07 45 views
0

假设我有两列A和B根据现有列中的值插入新列中的值

我想通过从列A中提取数据来更新列B中的内容; B栏是空白的,现在

列A

A 
C00 
C00 Law Firm 
C00 
C00 Law Firm 
C00 
M00 Federal Government' 

期望中的B柱

B 
C00 
Q00 
C00 
Q00 
C00 
M00 

的,并且如果有,我不更新语句B就应该指定任何其他值有'Q00'作为其相应的值。

我试图

If table.a like '%M00' UPDATE table set table.b= 'M00' else 'Q00'

UPDATE table set table.b= 'A00' WHERE table.a like '%A00' else 'Q00';

,但他们没有工作

+0

你是什么意思与“我不指定”?你可能想发布你迄今为止所尝试过的。请显示您的UPDATE语句。 –

+0

我试图 '如果LIKE '%M00' 更新表 集table.b = 'M00' 其他“Q00'' table.a但这不起作用 通过“我不知道指定'我的意思是,如果说我正在更新多个值,并且在更新语句中错过和/或故意不指定某些“a”的值,那么B中的相应值应该是Q00 –

+0

也尝试了下面的查询 'UPDATE表 组table.b = 'A00' WHERE table.a LIKE '%A00' 别的'Q00';' –

回答

0

你可以使用一个交易超过一个更新查询

BEGIN; 
    update table set b = table.a where a like '%MOO'; 
    update table set b = 'QOO' where a not like '%MOO'; 
    COMMIT; 
+0

比你的时候; 我希望更新多个值的值,例如B00代表%B00,C00代表%C00,我可以将它们置于另一个之下进行更新? –

+0

是的,你可以。如果您的问题已得到解答,请回复标记为已回答。 –

+0

为上述查询获取此错误 'PLS-00103:遇到符号“;”当期待以下之一时: (开始的情况下声明退出转到如果循环mod空pragma 提高返回选择更新,而<标识符> –

0

这里是一个样本,相应地更新,以适应您的需求:

update Table1 
SET 
col2 = CASE WHEN col1 like '%1%' THEN col1 
else '2222' 
END 
+0

非常感谢! 是否可以添加多个更新? –

+0

@DollarVora该查询将使用任一值更新表中的所有记录。但所有的行都不会少。 –

+0

我的意思是,我可以有 '更新表1 SET COL2 = CASE WHEN COL1像 '%1%',那么COL1 其他COL1 LIKE '%2%',那么 '某个值' END' –

相关问题