zoukankan      html  css  js  c++  java
  • 简单实现多条件查询

          我们在开发过程中,特别是数据库系统的开发中经常会遇到多条件的查询状况。例如:查询某一个部门某个时间段的车辆费用支出,这就涉及到多条件查询。其实多条件查询的方法有很多种,有些写法是比较烦琐,效率也不高,比如一个条件一个条件去if—else判断拼凑sql语句。我在这里使用一种个人觉得写法简单,理解也比较简单的方法:
      CREATE PROCEDURE
    [dbo].[usp_GetFeeInfo]
                 @Number nvarchar(50) = null,
    --车牌号
                 @Unit nvarchar(50) = null, --部门
                 @FeeType
    nvarchar(50) = null, --费用类型
                 @StartDate datetime = null,
    --查询的起始时间
                 @EndDate datetime = null 
    --查询的结束时间
    AS
    BEGIN
     select 
    f.ID,
       f.Number,
       f.[Type],
       f.FeeDate,
       round(f.[Money],2)
    as [Money],
       f.Status,
       f.Memo,
       c.id as
    cid,
       c.unit1
     from Fee f left join Car c
     on f.Number =
    c.Number
     where (f.Number = @Number or @Number is
    null)  --如果@Number参数为null的话那表示这个字段不在查询的条件中;这可以在程序里简单的实现。
      and (c.unit1 =
    @Unit or @Unit is null)
      and (f.[type] = @FeeType or @FeeType is
    null)
      and (f.Feedate >= @StartDate or @StartDate is null)
      and
    (f.Feedate <= @EndDate or @EndDate is null)
     order by f.FeeDate
    desc
    END

    程序里面你只要把所有查询条件的值都录入进去。
    例如:如果为“全部”的话,那就把这个字段的值设置为:null
  • 相关阅读:
    获取农历日期
    图片上传代码(C#)
    ASP.net使用技术总结(1)GridView控件的单击处理
    JavaScript使用小技巧:IE8的关闭处理
    FrameSet左右收缩编码
    哈哈,开心!今天注册开通了 弟弟Kernel 的网志
    设计模式简介
    Delphi字符串、PChar与字符数组之间的转换
    C++中数组参数详解
    1、简单工厂模式
  • 原文地址:https://www.cnblogs.com/zwq194/p/1974801.html
Copyright © 2011-2022 走看看