2016-12-14 38 views
-2

我有兩個表,它們存儲兩組相同的ID,當四個ID中的任何一個都爲NULL時,前端應用程序存在問題。這四個值總是不同,可以是NULL,但總會有一個正確的條目。使用SQL中可用的NON-NULL值更新多個NULL值

我的問題是我可以將這四個值輸入到臨時表中,然後使用實際上具有值的列更新所有NULL值?由於具有正確值的列一直在改變,所以它變得更加困難。

基本上我正在做一個存儲過程,但不能把這個邏輯出來。

+0

您可以添加一些您擁有的示例數據,以及您想要的數據示例嗎? – dvsoukup

+0

你正在使用哪些DBMS? –

回答

0

這聽起來像你只需要使用​​3210找到非NULL值。

coalesce(table1.col1, table1.col2, table2,col1, table2.col2) 

唯一需要注意的是,如果兩列有不同的非NULL值,那麼這個表達式返回它找到的第一個(按列出列的順序)。但是,如果您沒有發生這種情況,或者您可以指定在發生這種情況時使用哪一列,則無論列的哪些組合具有NULL,這都應該可以工作。

+0

非常感謝。 –

+0

你會如何指定一個列首選項?你會使用IF語句嗎? –

+0

您會在調用coalesce()時首先列出首選列。所以如果'col1'和'col2'都具有非NULL值,'coalesce(col1,col2)'將返回值col1'的形式,但coalesce(col2,col1)'將返回值形式'col2' –

-1

使用表表達式連接兩個表,然後從結果表中更新列缺失數據。