代码之家  ›  专栏  ›  技术社区  ›  mikeb

sql查询返回特定记录的条件

  •  0
  • mikeb  · 技术社区  · 10 年前

    我正在创建一个sql查询,其中有3个字段-->编号、公司名称、结束日期。 我想做的是让用户选择是否输入NUMBER和COMPANY…但END_DATE必须是必填的。然而,当我将NUMBER和COMPANY都保留为空,并且只输入END_DATE时,我不会收到任何记录。有什么帮助吗?

    where L.NUMBER = $P{LEASE_NUMBER}
    OR L.COMPANY_NAME = $P{COMPANY_NAME}
    AND (L.END_DATE BETWEEN $P{DateFrom} AND $P{DateTo}
    OR $X{EQUAL, L.END_DATE, dateRange})
    
    2 回复  |  直到 10 年前
        1
  •  2
  •   Gordon Linoff    10 年前

    我认为这更接近于您正在寻找的逻辑:

    where (L.NUMBER = $P{LEASE_NUMBER} OR $P{LEASE_NUMBER} IS NULL) and
          (L.COMPANY_NAME = $P{COMPANY_NAME} OR $P{COMPANY_NAME} IS NULL) and
          (L.END_DATE BETWEEN $P{DateFrom} AND $P{DateTo} OR
           $X{EQUAL, L.END_DATE, dateRange}
          )
    

    我不确定表达是否准时。你的问题没有解释 DateFrom .

        2
  •  0
  •   Saic Siquot    10 年前

    这可能有用

    WHERE (L.NUMBER       = $P{LEASE_NUMBER} OR $P{LEASE_NUMBER} = '')
      AND (L.COMPANY_NAME = $P{COMPANY_NAME} OR $P{COMPANY_NAME} = '')
      AND L.END_DATE >= $P{DateFrom} AND L.END_DATE <= $P{DateTo}