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

基于另一个参数的SQL WHERE子句条件赋值

  •  0
  • jamone  · 技术社区  · 16 年前

    我需要生成一个报告,用户可以在其中选择单选按钮中的所有问题、打开的问题或关闭的问题。在我看来,我有一个封闭的位列。如果我没有“所有问题”电台,我只会这样做:

    SELECT *
    FROM MyView
    WHERE isClosed = @ViewClosedRecords
    

    但是我需要移除 isClosed = @ViewClosedRecords 条件 @ViewAllRecords = true . 我该怎么做?

    5 回复  |  直到 16 年前
        1
  •  3
  •   Daniel Elliott    16 年前
    SELECT *
    FROM MyView
    WHERE @ViewAllRecords OR isClosed = @ViewClosedRecords
    

    善良,

    丹

        2
  •  1
  •   Pablo Santa Cruz    16 年前
    select *
    from MyView
    WHERE isClosed = @ViewClosedRecords
    OR @ViewAllRecords
    

    和设置 @ViewAllRecords 当用户在单选按钮中选择“所有问题”时,参数为真。

        3
  •  1
  •   Amy B    16 年前
    WHERE
    (@ViewAllRecords = false AND isClosed = @ViewClosedRecords)
    OR 
    (@ViewAllRecords = true)
    
        4
  •  1
  •   Peter Lang    16 年前

    下面将为您提供 isClosed = @ViewClosedRecords . 如果 @ViewAllRecords = true 然后它将返回所有行并忽略 isClosed .

    SELECT *
    FROM MyView
    WHERE isClosed = @ViewClosedRecords
       OR @ViewAllRecords = true
    
        5
  •  1
  •   brydgesk    16 年前
    WHERE (@ViewAllRecords <> true AND isClosed = @ViewClosedRecords)