关于 Order By 的问题??

ax711740 2012-02-08 04:35:40
如下Sql语句
select top 15 * from view_Claim_Main
where Subject like N'%A83F622AAAAAA0340%' or SN like N'%A83F622AAAAAA0340%'

or

(Guest_Type='1' and Guest_ID in(select Dealer_ID from dbo.Dealer where Contact like N'%A83F622AAAAAA0340%' or Title like N'%A83F622AAAAAA0340%'or Tel like N'%A83F622AAAAAA0340%'))

or

(Guest_Type='2' and Guest_ID in(select Customer_ID from Customer where Name like N'%A83F622AAAAAA0340%' or Company_Name like N'%A83F622AAAAAA0340%'or Mobile like N'%A83F622AAAAAA0340%' ))

order by Create_Date

去掉 Order By Sql语句可以执行成功,加上Order By Sql语句持续执行,无法返回结果。
请问这是什么原因造成的???
...全文
166 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可能数据量太大了,给Create_Date字段建个索引(index)再试
晚安苏州 2012-02-08
  • 打赏
  • 举报
回复
加个括号试试呢~

select top 15 * from view_Claim_Main
where (Subject like N'%A83F622AAAAAA0340%' or SN like N'%A83F622AAAAAA0340%'

or

(Guest_Type='1' and Guest_ID in(select Dealer_ID from dbo.Dealer where Contact like N'%A83F622AAAAAA0340%' or Title like N'%A83F622AAAAAA0340%'or Tel like N'%A83F622AAAAAA0340%'))

or

(Guest_Type='2' and Guest_ID in(select Customer_ID from Customer where Name like N'%A83F622AAAAAA0340%' or Company_Name like N'%A83F622AAAAAA0340%'or Mobile like N'%A83F622AAAAAA0340%' )))

order by Create_Date

「已注销」 2012-02-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xxj_jing 的回复:]
不行就把结果集套在一个 查询中吧

select *
from
(
select top 15 * from view_Claim_Main
where Subject like N'%A83F622AAAAAA0340%' or SN like N'%A83F622AAAAAA0340%'
or
(Guest_Type='1' and Guest_ID i……
[/Quote]

这个不是改变了原来的逻辑?查询记录中任意的前15条数据,在排序。我想要的是查询出按时间排序的前15条数据......
全局变量 2012-02-08
  • 打赏
  • 举报
回复
不在查询分析器里试很难找到问题
草青工作室 2012-02-08
  • 打赏
  • 举报
回复
不行就把结果集套在一个 查询中吧

select *
from
(
select top 15 * from view_Claim_Main
where Subject like N'%A83F622AAAAAA0340%' or SN like N'%A83F622AAAAAA0340%'
or
(Guest_Type='1' and Guest_ID in(select Dealer_ID from dbo.Dealer where Contact like N'%A83F622AAAAAA0340%' or Title like N'%A83F622AAAAAA0340%'or Tel like N'%A83F622AAAAAA0340%'))
or
(Guest_Type='2' and Guest_ID in(select Customer_ID from Customer where Name like N'%A83F622AAAAAA0340%' or Company_Name like N'%A83F622AAAAAA0340%'or Mobile like N'%A83F622AAAAAA0340%' ))
) t1
order by t1.Create_Date

「已注销」 2012-02-08
  • 打赏
  • 举报
回复
根本没15条,根据条件只有两条数据
全局变量 2012-02-08
  • 打赏
  • 举报
回复
这15 条数据 有可能时间是空
catmax 2012-02-08
  • 打赏
  • 举报
回复
那推测就对了,是SQL执行顺序的问题。
「已注销」 2012-02-08
  • 打赏
  • 举报
回复
不是没结果,系统一直在执行,就像死循环一样,什么都不返回.....
catmax 2012-02-08
  • 打赏
  • 举报
回复
我怀疑是执行顺序引起的值不存在,导致没结果
「已注销」 2012-02-08
  • 打赏
  • 举报
回复
还是不行,不过我把 top 15 去掉就可以,top 和Order By 只能选择一个,不知道
为什么??
dabuyingyeyaoda 2012-02-08
  • 打赏
  • 举报
回复
order by Create_Date 后面有没有 ASC或者DESC?
catmax 2012-02-08
  • 打赏
  • 举报
回复
测试一下
order by Create_Date
后面加个desc 看看是否有结果?
「已注销」 2012-02-08
  • 打赏
  • 举报
回复
语句就是在查询分析器中执行的
分析结果 Command(s) completed successfully.
bdmh 2012-02-08
  • 打赏
  • 举报
回复
你把整个语句放到查询分析器中看看

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧