1. 程式人生 > >SQL中Delete語句表名不能用別名?!

SQL中Delete語句表名不能用別名?!

昨天發現程式中資料分析的結果不對,重新進行分析後,原資料仍在,有值的欄位被累計。心說,不對啊,是重新生成記錄後才分析的啊。難道忘了DELETE了?查程式碼,發現有刪除語句。於是在查詢分析器中執行,報錯。反覆試幾次,明白了,Delete From不認表名別名!回頭想下,當初程式改完後主要是在Oracle中測的,SQLServer/MYSQL一直沒細測。

之所以要用別名,是因為where條件中需要用到子查詢寫一些條件,下面不寫那麼複雜,僅說明一下問題。

結論:

     (ORACLE適用)    DELETE FROM TABLEA A WHERE A.FIELD1=10

(SQLSERVER/MYSQL適用)    DELETE TABLEA FROM TABLEA A WHERE A.FIELD1=10

  (Ora/SQL均適用)   DELETE  FROM TABLEA WHERE TABLEA.FIELD1=10