SQL范围条件小于、大于和之间

Posted

技术标签:

【中文标题】SQL范围条件小于、大于和之间【英文标题】:SQL range conditions less than, greater than and between 【发布时间】:2017-06-08 19:29:25 【问题描述】:

我想要完成的是;查询“documents created column”字段中的“email ocr in”和“universal production”行是否与“email OCR”“documents_created”的金额相同。如果没有,请拉出该批次。最后,如果在提取电子邮件 ocr 和通用生产文件后,附件计数少于 7 个条目,则返回所述结果

当前查询如下:

use N
SELECT   id, 
         type, 
         NAME, 
         log_time , 
         start_time , 
         documents_created , 
         pages_created, 
         processed, 
         processed_time  

FROM     N_LF_OCR_LOG 

WHERE    

    -- Log time is current day
    log_time between  CONVERT(date, getdate()) AND CONVERT(datetime,floor(CONVERT(float,getdate()))) + '23:59:00'  

    -- Documents created is NULL or non zero
    AND (documents_created IS NULL OR documents_created <> 0)

  or  ( documents_created is null and log_time between  CONVERT(date, getdate()) AND CONVERT(datetime,floor(CONVERT(float,getdate()))) + '23:59:00')  

    -- Filter for specific types
    AND type IN ('Email OCR In', 
            'Universal Production') 

    -- Filter to rows where number of pages and documents created are not equal
    AND documents_created <2 and pages_created >2 

ORDER BY log_time
,id asc 
,processed_time asc

知道如何合并它吗?我是新手。谢谢

【问题讨论】:

【参考方案1】:

创建索引时,您只需指定要索引的列。为范围查询或完全匹配创建索引没有区别。您可以将多个列添加到同一个索引,以便所有列都可以从索引中受益,因为当时每个表只能选择一个索引来支持查询。

您可以创建一个仅覆盖您的 where-clause 的索引:

alter table N_LF_OCR_LOG add index test1(log_time, documents_created, type, pages_created);

或者也将排序所需的列添加到索引中。索引中列的顺序很重要,并且必须与查询中的顺序相同:

alter table N_LF_OCR_LOG add index test1(log_time, id, processed_time, documents_created, type, pages_created);

或者添加一个包含返回列的覆盖索引,这样您就不必从表中加载任何值,并且只需使用索引即可完成查询。这为查询提供了最佳响应时间。但是索引占用了更多的磁盘空间。

alter table N_LF_OCR_LOG add index test1(log_time, id,  processed_time, documents_created, type, pages_created, NAME, start_time, processed);

在查询前使用 explain 关键字来查看索引的性能。

【讨论】:

谢谢!我尝试将它添加到我的 where 子句中,但它有一个错误。你能把它列在代码中吗? 不要将其添加到您现有的查询中。这些是分开的陈述。在执行查询之前,您必须执行一次。每次您在表中自动插入新行时,索引都会永久保留并更新。也许您应该阅读有关添加索引的基础知识以更好地理解:dev.mysql.com/doc/refman/5.7/en/create-index.html

以上是关于SQL范围条件小于、大于和之间的主要内容,如果未能解决你的问题,请参考以下文章

sql这个语句怎么写条件,小于2010-4-1的订单日期

数据库中的条件查询

labview中如何大于0小于4

第5次作业+074+林盼皇

确定范围重叠,包括小于和大于范围

sql ——on 和 where