同样的表达式,两个不同的筛选方式,结果不一样。导出文本数据的方式,筛选结果是对的。 查询的方式,筛选结果会包含序号等于2 和3 的。并且不是按原表数据的顺序得到的结果。是我使用的方法不对吗?调试日志:https://temp.getquicker.net/9010/be4633a71f8746fa8a31f9670fcf081f.html
测试了一下,和列名、列的位置没有关系,和列里的值有关系。 如果把年龄那一列的值也改成1-9,筛选结果就和序号一样了。 所以这个应该是底层处理的算法对这种情况和实际需求不匹配,具体底层是什么处理方式没有办法判断了。 还是尽量提供明确的数据类型,再做筛选比较好。
另外我查到了有关说明,Select方法支持表达式里使用CONVERT,所以这里可以使用这样的筛选条件:
CONVERT(序号, System.Int32) > 3