我有一个包含8列的数据库表。其中一列称为IsAdmin
(其数据类型为Bit)。当且仅当登录用户是管理员时,我必须在网格视图中显示用户列表。
我该怎么做?哪个子句用于此?
答案 0 :(得分:2)
不完全确定我理解正确。您要查看的“用户列表”是否也是您要选择的表格?我的理解是,这就是你需要的:
if exists (
select *
from MyUserList
where IsAdmin = 1
and UserName = SUSER_NAME()
)
begin
select *
from MyUserList /* Or whatever you need to do if the user is admin */
end
else
begin
/* Do whatever you need to do if the user is not an admin */
end
答案 1 :(得分:1)
对我而言,听起来并不像您需要一个条款,但应该由您的应用程序中的业务逻辑处理。
e.g。如果您只想显示列表,如果登录用户是管理员,那么如果用户不是管理员,那么运行查询是没有意义的 - 这是对必要的数据包的往返。
相反,在您的应用程序中只有一些逻辑说“如果登录用户是管理员填充网格视图,否则不要”
答案 2 :(得分:0)
我可能会建议在应用程序中而不是在SQL中完成此操作。让应用程序检查谁是管理员并将其放入会话或cookie中,并在页面加载时检查会话/ cookie以确保用户是管理员以及他们是否显示信息。
如果你想在SQL中使用它,你应该提供一些额外的信息,比如表结构和表名。
马特
答案 3 :(得分:0)
解决方案太简单了,因为如果用户是admin的角色,你需要选择特定的数据,否则可能会选择其他数据,或者没有,所以请执行以下代码:
select * from [UserList] where IsAdmin = @UserRole and UserID = @UserID
在这种情况下,您将选择与此用户ID及其角色相关的数据。
希望根据我对问题的理解,这是有帮助的。