2
我有一個更新查詢類似更新NULL而不是值的Oracle更新?
update employees
set salary = salary - (select sum(salary) from employees where manager_id in (101,102))
where employee_id = 105;
上面的SQL工作正常,但下面的SQL是更新的NULL值來代替。
UPDATE table1 a
SET a.col1 = a.col1 - (SELECT SUM(b.col2)
FROM table2 b
WHERE b.col3 = 'AA'
AND b.col4 = '1234'
AND b.col5 = '123456789'
AND b.col6 = 'O'
AND b.col7 IN (1, 2, 3, 4))
WHERE a.col3 = 'AA'
AND a.col4 = '2313'
AND a.col5 = '987654321';
有人知道原因嗎?
如果工資值中有一些NULL值,它會更新NULL嗎? (我知道它不會因爲內部查詢返回一個數字值)。
它工作正常,如果我硬編碼的內部查詢的值,但失敗,如果我使用綁定參數。 (但是,當硬編碼或使用綁定參數時,都會返回一個數值。)
我只是不知道這個簡單的查詢有什麼問題。
順便提一下原來這裏是'SQL UPDATE TABLE1一個SET = a.COL1 a.COL1 - (SELECT SUM(b.COL2) FROM TABLE2 b WHERE b.COL3 = 'AA' AND b.COL4 = '1234' AND b.COL5 = '123456789' AND b.COL6 = 'O' AND b.COL7 IN(1,2,3,4) ) WHERE a.COL3 ='AA' AND a.COL4 ='2313' AND a.COL5 ='987654321';' – 2015-04-02 04:43:21
更好地在問題本身中添加這些細節而不是評論。我已編輯你的問題,並且這次爲你添加了它。 – 2015-04-02 04:54:07
謝謝你的幫忙。我會牢記這一點。 – 2015-04-02 04:59:10