在我的OracleDB中,有一个包含100列(1-100)的表。我需要一个查询来更新具有值的最低空值(例如1),并且无法自己计算出来。如何始终获得最低的空列(例如,如果列1-10不为空,则为第11列)?
感谢任何帮助。
答案 0 :(得分:0)
这很残酷,但应该有效。尝试
UPDATE Table1
SET column1 = (CASE WHEN column1 IS NULL THEN 'new value' ELSE column1 END),
column2 = (CASE WHEN column1 IS NOT NULL
AND column2 IS NULL THEN 'new value' ELSE column2 END),
column3 = (CASE WHEN column2 IS NOT NULL
AND column3 IS NULL THEN 'new value' ELSE column3 END),
column4 = (CASE WHEN column3 IS NOT NULL
AND column4 IS NULL THEN 'new value' ELSE column4 END),
column5 = (CASE WHEN column4 IS NOT NULL
AND column5 IS NULL THEN 'new value' ELSE column5 END)
...
WHERE id = 1
注意:除了查询的长度之外,可能的缺点是每列都会更新。
这是 SQLFiddle 演示