在mysql中,要查出一個表的C_NAME不重複的記錄的所有字段,使用distinct肯定不行了(會distinct所有字段),這時可以使用group by C_NAME,例如:select c_id,c_name,c_address from t_user group by c_name;執行這個語句沒有問題。
但是,在oracle中,就會出現“ORA-00979 不是group by表達式”的錯誤。在oracle中規定,使用group by時,select後面所有不是聚合函數的字段,都必須出現在group by後面。
oracle group by 和mysql group by 區別
oracle 對於group by 是嚴格的,所有要select出來的所有字段必須在group by後邊出現,否則會報“ORA-00979 不是group by表達式”
mysql 則不同。如果select出來的字段在group by 後面沒有,則會隨機取出來一個值,這樣查詢出來的數據不準確。