在我的 OracleDB 中,有一个包含 100 列 (1-100) 的表。我需要一个查询来用值(例如 1)更新最低的空值,并且我自己无法弄清楚。如何始终获得最低的空列(例如,如果第 1-10 列不为空,则为第 11 列)?
将不胜感激任何帮助。
这很残酷,但应该有效。尝试
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演示