0
我有表中有8列,現在我想要的是如果在第1列,第2列和第3列中有值,第4列爲空,並且再次爲第5列,第6列值使得第5列, 6應該在第3列和第4列更新。對於所有不同的情況都是如此。這有可能與單個查詢解決它,而無需使用存儲過程或任何迭代process.thanks更新列的值的順序
我有表中有8列,現在我想要的是如果在第1列,第2列和第3列中有值,第4列爲空,並且再次爲第5列,第6列值使得第5列, 6應該在第3列和第4列更新。對於所有不同的情況都是如此。這有可能與單個查詢解決它,而無需使用存儲過程或任何迭代process.thanks更新列的值的順序
試試這個:
UPDATE a
SET a.column3 = b.column5, a.column4 = b.column6
FROM Table a
INNER JOIN myTable b
ON a.Id = b.Id
WHERE column1 IS NOT NULL AND
column2 IS NOT NULL AND
column3 IS NULL AND
column4 IS NULL AND
column5 IS NOT NULL AND
column6 IS NOT NULL
感謝這個答案,但正如你已經給出了第3列和第4列爲空的情況。但並非總是如此。有可能有不同的情況。 –
請分享所有的案件。 –
如果你只有6列,只需寫一個case語句和所有的組合。如果列數很大,那麼你可以用unpivot + row_number –
Rohit構建一些東西,可以有多種場景。 1)我有12列,並有可能前11個是空白,數據存在於第12列比我需要將其移動到第1列2)前8欄是空白,9有價值,然後10是空白,11,12有價值。 3)第1,2列有值3,4沒有值,則5,6再有值。 ...所以這n種場景都是可能的。所以每次我必須檢查起始列是否有值,如果不是,那麼將值移動到該列等等。 –