Sql Server 中的distinct有什么奇怪的内部处理吗?见下图,第一个图正常,其他的都比较奇怪
有一种列相互之间串了的感觉,知道的讲解一下,谢谢,问题解决没问题,关键我想知道内部出了什么问题。
补充:我还有另外两个2010年和2011年的数据表,结构完全一样,没有上面的问题,纳闷啊。
SQL语句有错误啊,第一个第二个是对的啊,
第三个第四个是同一个问题,“年份”是nvarchar类型,你不能直接等于2009,2009是数字,
所以正确的SQL语句应该是这样的,你试试看:
select 年份, 月份, 法人代码
from [2009财务数据]
where 年份='2009'
我还有另外两个2010年和2011年的数据表,结构完全一样,没有上面的问题,是因为你的2009年财务数据里有脏数据,你查询一下,
select 年份, 月份, 法人代码
from [2009财务数据]
where 年份='z1'
z1就是脏数据,是没有办法转变成int型。所以就出错了。
表里面是没有脏数据的,所有年份列都是2009,你看到第二个截图的月份呢值了吗,表里面是没有这些值的,那个是后面某一列的数据,感觉在底层列串位了
第三四个语句因为我的表里面没有脏数据,所以直接在nvarchar和int间用等号是可以的,只是它“串列”了
Select 月份 from [2009财务数据] 怎么样
应该是数据出错了吧
DBCC CHECKDB, DBCC CHECKTABLE 运行下试试
Select 月份 from [2009财务数据] 是正常的,跟第一个查询一样的性质
@dege301: 最后到底是什么原因啊
@dege301: DBCC有没有检测出错误啊,这个得分也有点不明不白的。
使用group by呢?有这个问题吗?