获取'转换失败..将varchar值转换为int'如果我删除ORDER BY CLAUSE

时间:2012-09-20 07:15:46

标签: sql-server-2008 debugging

几天后出现了一个奇怪的问题,这使我无法运行任何查询。

SELECT Empid as EmployeeId, EmpName,
CustomerName as 'Distributor Name', Customer.RSCode, markedFor as 'Date Marked For',
CASE WHEN Present = 0 THEN 'ABSENT' ELSE 'PRESENT' END AS Attendance, Reason
FROM EmployeeAttendance_Backup ea, Customer, Employee e, EmployeeMaster em
WHERE 
ea.DistID = cast(Customer.RSCode as int)
AND e.EmployeeMasterID=em.Id
AND ea.Empid = em.EmployeeID
--ORDER BY markedFor

如果我运行上面的查询,我会得到~160k - 190k记录,然后它会以错误终止:

  

转换varchar值'Present时转换失败   500004862'到数据类型int。

我甚至没有选择该字段,因为它正在抛出此错误。

如果我启用了ORDER BY子句,我没有得到任何记录,而且这个错误:

  

将varchar值'Hirannaiah K R'转换为数据类型int时转换失败。

EmployeeAttendance_Backup表有近20万条记录。这会导致任何问题吗?我不知道如何寻找解决方案。我尝试通过这个特定员工的考勤表,检查是否有一些记录被错误保存,但事实并非如此。对于此特定员工,Employee和EmployeeMaster也是如此。

我从哪里开始寻找问题?

0 个答案:

没有答案