2010-03-19 221 views
1
UPDATE employees 
    SET job_id = (SELECT job_id 
        FROM employees 
        WHERE employee_id = 205), 
     salary = (SELECT salary 
        FROM employees 
        WHERE employee_id = 205) 
WHERE employee_id = 114; 

這是我一直在使用的查詢。在這裏我使用2個子查詢,但他們有相同的條件..尋找時間加倍..是否有一種方法來優化整個查詢單個子查詢?提前優化sql查詢

+0

,** **請在突出問題的那些行並使用編輯器工具欄上的「代碼」按鈕(101 010)來很好地格式化這些!使它更容易閱讀和理解! – 2010-03-19 09:47:38

+0

@joseph這樣做(這種語法)在oracle中工作? http://stackoverflow.com/questions/2476206/optimize-the-sql-query/2476423#2476423 – garik 2010-03-19 10:29:47

回答

5

謝謝如果你更新了一組列,你可以刪除一個子查詢:如果您發佈的代碼,包括SQL或XML

UPDATE employees 
    SET (job_id, salary) 
     = (SELECT job_id, salary FROM employees WHERE employee_id = 205) 
WHERE employee_id = 114; 
+0

+1 - 我不知道你可以做SET(job_id,salary)= SELECT(Job_id,Salary)。 謝謝。 – 2010-03-19 10:24:28

+0

@Vincent,該語法是否也適用於SQL服務器? – 2010-03-19 10:26:50

+0

不,它不適用於sql server(2005) – garik 2010-03-19 10:31:23