萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> sqlserver子查詢報錯

sqlserver子查詢報錯

   sqlserver跟oracle對比,如果涉及到的子查詢,則相應的表名、字段就必須命名一個別名才能執行。主要有兩種情況:

  1.查詢sql裡面只有簡單子查詢不包含分組、求和等待 eg:elect * from (select com_id from company) 如此會報錯,必須加上外層加上別名,裡層的select * from company這裡可以加別名,也可以不加正確:select * from ( select com_id from company) a

  2.查詢的sql裡面包含分組、求和等或者其他函數時 eg:select * from (select com_id ,count( com_id) from company group by com_id ) a 這裡如果給最外層sql加了別名,還是會報錯,再給company 加上別名b select * from (select com_id,count(com_id) from company b group by com_id) a 這樣也還是不行,因為其實count()函數的其實也可以當做一個子查詢,所以也要給count()加上別名才行正確:select * from (select com_id ,count( com_id) c from company b group by com_id) a

copyright © 萬盛學電腦網 all rights reserved