1. 程式人生 > >sqlserver2008查詢語句報錯 無法解決 equal to 運算中 "Chinese_PRC_BIN" 和 "Chinese_PRC_CI_AS" 之間的排序規則衝突

sqlserver2008查詢語句報錯 無法解決 equal to 運算中 "Chinese_PRC_BIN" 和 "Chinese_PRC_CI_AS" 之間的排序規則衝突

SELECT top(10) * FROM [attendance].[dbo].[att_AttendanceDetail] a left join [attendance].[dbo].[base_StaffInfo] b on a.staffID collate Chinese_PRC_CI_AS =b.user_no where uploadtime>='2018-02-10 00:00:00' and staffID<>'0' and left(b.dept_no,4) in (select dept_no from [attendance].[dbo].[Coll_deptInfo])

sqlserver2008執行以上sql語句的時候報錯“無法解決 equal to 運算中 "Chinese_PRC_BIN" 和 "Chinese_PRC_CI_AS" 之間的排序規則衝突”。


處理辦法: 將表間關聯欄位增加collate Chinese_PRC_CI_AS的轉義即可解決。修改後的語句如下:

Select a.att_id,a.staffID,a.readdate,a.ReadCardTime,a.uploadtime,a.deviceID,a.photoID,left(b.dept_no,4) dept_no_4,'0' status,b.dept_no,'2018-02-23 11:00:00' WriteTime FROM [attendance].[dbo].[att_AttendanceDetail] a left join [attendance].[dbo].[base_StaffInfo] b on a.staffID collate Chinese_PRC_CI_AS =b.user_no where a.uploadtime>='2018-02-10 00:00:00' and staffID  <>'0' and left(b.dept_no collate Chinese_PRC_CI_AS,4) in (select dept_no collate Chinese_PRC_CI_AS from [attendance].[dbo].[Coll_deptInfo])