首页 新闻 会员 周边

SQLServer2008 排序问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-10-09 21:28

目前要对一张表进行排序,CommentImages里面存的图片名字(如201312kdks.jpg),还有一个字段 CommentDate时间类型,现在要求  有图片的在上面,没有图片的(图片字段为空)的在下面,

有图片的按照CommentDate倒叙排列,没有图片的也按照倒叙排列。

我的方法是 order by Convert(bit,LEN(ISNULL(CommentImages,0))) desc,CommentDate desc)  但是这样 无法为CommentImages加上索引 所以很慢,即使分页了,只有10条数据,很慢

 

求大神降临

愚智的主页 愚智 | 初学一级 | 园豆:13
提问于:2013-09-25 17:38
< >
分享
最佳答案
0

可以把有图的 先取出来再排序 没有图的 取出来放后面 排序 只是一种思路 希望能帮到你

收获园豆:10
wolfy | 老鸟四级 |园豆:2636 | 2013-09-26 13:19

 恩 但是数据量大,得leftjoin ,性能得不到提升。

愚智 | 园豆:13 (初学一级) | 2013-09-26 21:47
其他回答(1)
0

Order by CommentImages desc,CommentDate desc不行吗?

幻天芒 | 园豆:37175 (高人七级) | 2013-09-25 22:56

这样,CommentImages多的就会在前面,有图片的就不会按照CommentDate排序了

支持(0) 反对(0) 愚智 | 园豆:13 (初学一级) | 2013-09-26 21:46

@愚智: 多用一个字段  IsHasImage=(case CommentImages is null then 0 else 1)

然后用IsHasImage和ComentDAte排序。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-09-27 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册