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

【探讨兼散分】SQL语句简化解决思路

2012-01-31 
【探讨兼散分】SQL语句简化SELECTFIELD1,FIELD2,FIELD3FROMSOME_TABLEWHERE(BeginAANDEndA)OR(BeginBANDE

【探讨兼散分】SQL语句简化
SELECT   FIELD1,FIELD2,FIELD3  
FROM   SOME_TABLE  
WHERE  
(Begin   <   A   AND   End   >   A)  
OR
(Begin   <B   AND   End   <   B)
OR
(Begin   >   A   AND   End   <   B)
OR  
(Begin   <   A   AND   End   >   B)

后面的查询语句如何简化?
前10个“顶”“接分”“关注”有分
提供正确答案均有分

[解决办法]
顶了!
[解决办法]
是不是时间段重合判断
假设判断时间段A1到A2是否与时间段B1到B2重合

那么,只要条件(A1 <B2) And (B1 <A2)即可~~~
[解决办法]
关注先
[解决办法]
感觉没的简化,如果要简化的话也应该是在设计数据库的时候根据需求做优化

感觉LZ是需要根据一个值的区间查询,设计的时候不一定要用2个字段分别存上下限吧,你可以把需求也帖出来,大家一起讨论整个数据库的优化以及简化方案~
[解决办法]
简化应该也是在保持效率的基础上吧.我觉得效率还是首位.自己累点也没法子
[解决办法]
把需求也帖出来
[解决办法]
你的条件存在冗余

(Begin < A AND End > A) 1
OR
(Begin <B AND End < B) 2
OR
(Begin > A AND End < B) 3
OR
(Begin < A AND End > B) 4

看你的条件应该可以看出来B比A大,所以条件1已经包括在条件4种了,也就是说条件1可以不写
[解决办法]
也就是说你的语句可以写成

SELECT FIELD1,FIELD2,FIELD3
FROM SOME_TABLE
WHERE
(Begin <B AND Begin > A AND End < B)
OR
(Begin < A AND End > B)
[解决办法]
关注
[解决办法]
amandag:

(Begin < A AND End > B) 4 可理解为:(Begin < A AND B < End);这句中A、B的大小关系不确定哦。

感觉是可以优化,但不知道楼主到底要查什么...

热点排行