私の 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のデモです