首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

sql语句有关问题 很晚了.帮帮忙

2012-01-26 
sql语句问题很晚了.在线等.帮帮忙SELECT distinct a.ExceptionInfoId,ROW_NUMBER() OVER(ORDER BY a.Proje

sql语句问题 很晚了.在线等.帮帮忙
SELECT distinct a.ExceptionInfoId,ROW_NUMBER() OVER(ORDER BY a.ProjectId ASC) AS row 
FROM SysLogExceptionInfo as a
INNER JOIN SysLogProject As b ON a.ProjectId=b.ProjectId 
INNER JOIN AuthorResource AS c ON c.ResourceCode=b.ResourceCode 
INNER JOIN SysLogExceptionTime AS d ON d.ExceptionInfoId=a.ExceptionInfoId 

我省略了一些.大体就是这样
ROW_NUMBER() OVER(ORDER BY a.ProjectId ASC) AS row 
加上这个会显示一个新列用来显示条数

可是我加了这个distinct a.ExceptionInfoId 就不起作用了,比如有一个id 10出现了十次.但是我希望不管出现多少次只显示一次.所以我加了distinct 
有没有什么办法?


[解决办法]
帮顶
[解决办法]
加了distinct 好象在你的排序条件里需要加上a.ExceptionInfoId那才行
[解决办法]
select a.ExceptionInfoId,ROW_NUMBER() OVER(ORDER BY a.ProjectId ASC) AS row from (SELECT distinct a.ExceptionInfoId
FROM SysLogExceptionInfo as a 
INNER JOIN SysLogProject As b ON a.ProjectId=b.ProjectId 
INNER JOIN AuthorResource AS c ON c.ResourceCode=b.ResourceCode 
INNER JOIN SysLogExceptionTime AS d ON d.ExceptionInfoId=a.ExceptionInfoId ) as t
[解决办法]
distinct 返回唯一的结果集,如果你选了N个字段,当N个字段都相同时 
才会被视为相同,而只返加一个条记录..
你现在查询出来的用distinct查出来的结果有第一个字段都相同的吗?
[解决办法]
distinct用法总结
distinct的只显示一次重复出更的值。 
不过这个值出现多少次只显示一次。 
select distinct 字段名1,字段名2 from 表格 order by 字段名1 
distinct 字段名1 意思是只显示一次字段名1显示的是第一次出现的。 
最好和order by 结合使用。可以提高效率
distinct 返回唯一的结果集 
注意,是结果集,如果你选了N个字段,当N个字段都相同时 
才会被视为相同,而只返加一个 
当然,如果N=1的话,情况就会比较明显 
此外,distinct 会对返回的结果集进行排序 所以会大大影响查询效率,大数据集时比较明显
[解决办法]
帮顶,jf

热点排行