我有一个名为sinvent的表,其中包含accno,jno和saccno列。 jno和saccno已经用数字填充,很多数字重复。我需要根据与jno相关的以下值填充accno。我如何编写一个查询来做到这一点?
accno = 4010 for jno < 09999
accno = 4011 for jno = 00011
accno = 4012 for jno = 00012
accno = 4714 for jno = 00014
accno = 4018 for jno > 80000 and jno < 99998
accno = 4008 for saccno = 7 and 8
accno = 4714 for jno = 04714 and 4714
任何帮助将不胜感激。
香港专业教育学院试图使用
update sinvent
set
accno = '4010' where jno < '09999',
accno = '4011' where jno = '00011'
但是它说在同一子句中不能为一个列分配多个值
最佳答案
UPDATE sinvent
SET accno = CASE
WHEN jno < '09999' THEN '4010'
WHEN jno = '00011' THEN '4011'
WHEN jno = '00012' THEN '4012'
WHEN jno = '00014' THEN '4014'
WHEN (jno > '80000' and jno < '99998') THEN '4018'
WHEN (saccno = '7' OR saccno = '8') THEN '4008'
WHEN (jno = '4714' OR jno = '04714') THEN '4714'
END
关于mysql - 如何根据行填充具有多个值的表的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30782019/