我如何在 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')