我有兩個表,它們存儲兩組相同的ID,當四個ID中的任何一個都爲NULL時,前端應用程序存在問題。這四個值總是不同,可以是NULL,但總會有一個正確的條目。使用SQL中可用的NON-NULL值更新多個NULL值
我的問題是我可以將這四個值輸入到臨時表中,然後使用實際上具有值的列更新所有NULL值?由於具有正確值的列一直在改變,所以它變得更加困難。
基本上我正在做一個存儲過程,但不能把這個邏輯出來。
我有兩個表,它們存儲兩組相同的ID,當四個ID中的任何一個都爲NULL時,前端應用程序存在問題。這四個值總是不同,可以是NULL,但總會有一個正確的條目。使用SQL中可用的NON-NULL值更新多個NULL值
我的問題是我可以將這四個值輸入到臨時表中,然後使用實際上具有值的列更新所有NULL值?由於具有正確值的列一直在改變,所以它變得更加困難。
基本上我正在做一個存儲過程,但不能把這個邏輯出來。
這聽起來像你只需要使用3210找到非NULL值。
coalesce(table1.col1, table1.col2, table2,col1, table2.col2)
唯一需要注意的是,如果兩列有不同的非NULL值,那麼這個表達式返回它找到的第一個(按列出列的順序)。但是,如果您沒有發生這種情況,或者您可以指定在發生這種情況時使用哪一列,則無論列的哪些組合具有NULL,這都應該可以工作。
非常感謝。 –
你會如何指定一個列首選項?你會使用IF語句嗎? –
您會在調用coalesce()時首先列出首選列。所以如果'col1'和'col2'都具有非NULL值,'coalesce(col1,col2)'將返回值col1'的形式,但coalesce(col2,col1)'將返回值形式'col2' –
使用表表達式連接兩個表,然後從結果表中更新列缺失數據。
您可以添加一些您擁有的示例數據,以及您想要的數據示例嗎? – dvsoukup
你正在使用哪些DBMS? –