1
我无法使用单引号选择包含IN
子句的值。 pid
列是varchar(50)
。IN运算符未找到匹配项
select * from t_tra_main where pid in (200000002,300000394,200000004,
200000001,300000378,300000393,300000379,200000003)
select * from t_tra_main where pid in ('200000002','300000394','200000004',
'200000001','300000378','300000393','300000379','200000003')
第一个查询返回数据,但第二个查询不返回数据。
down voter's please请添加评论。它将帮助 – 2013-05-11 18:15:59
pid值是否填充了前导零?如果是这样,那就可以解释它。当您使用IN列表使用数字值时,它会隐式地将值(pid)转换为数字,从而消除前导零。 – mroach 2013-05-11 18:19:44
是不是我downvoted。是否=现有ID中的一个工作?适用于我的sql-server 2012,所以只能假设一些奇怪的事情发生,例如奇怪的PID列上的索引,破表(试试DBCC吗?)或者这些值都不在表中。 – 2013-05-11 18:20:21