0

我如何在 where 子句中使用通配符,以便在特定情况下显示 ALL?

我有一个下拉列表,其中包含:

  • 全部 - (无价值)
  • 员工(价值 = 员工)
  • 经理(值 = 经理)
  • 分销商(价值 = 分销商)

我的 SQL 选择语句原来是:

SELECT * FROM [DB_Table] WHERE ([Site] = @Site) AND (RoleType=@RoleType)

角色类型等于员工、经理或分销商,并且永远不会为空。这很好地通过3个角色进行过滤,但是如何使所有人选择它,所以它显示所有呢?

我相信我需要做这样的事情,但不能做对:

SELECT * FROM [DB_Table] WHERE ([Site] = @Site) AND (RoleType=@RoleType OR @RoleType <> NULL)

回答:

我不能将 ALL 的 DDL 值留空,所以这就是它现在的样子和工作原理。

<asp:ListItem Text="All" Value="All" Selected="True"></asp:ListItem>
<asp:ListItem Text="Staff" Value="Staff"></asp:ListItem>
<asp:ListItem Text="Manager" Value="Manager"></asp:ListItem>
<asp:ListItem Text="Distributor" Value="Distributor"></asp:ListItem>

SELECT * FROM [DB_Table] WHERE ([Site] = @Site) AND (RoleType=@RoleType OR @RoleType = 'ALL')
4

1 回答 1

3
SELECT * FROM [DB_Table] WHERE ([Site] = @Site) AND (RoleType=@RoleType OR @RoleType is NULL)

我认为 All 下拉选项应该是 null RoleType 对吗?

于 2012-09-28T15:45:53.927 回答