复杂的查询

来源:互联网 发布:2018年中国经济知乎 编辑:程序博客网 时间:2024/05/01 01:40

CREATE   PROCEDURE     [dbo].[User_Module]  
(@UserName   nvarchar(20),
@UserPwd   nvarchar(20))
AS
select   权限表.用户权限   from   权限表
where   (权限表.Id   in   (select   用户权限表.权限表Id   from   用户权限表
where   用户权限表.角色表Id   in   (select   角色表.Id   from   角色表
where   角色表.用户表Id   =   (select   用户表.Id     from   用户表   where  
用户表.用户名   =   @UserName   and   用户表.用户密码   =   @UserPwd   ))))
GO

select 用户表.id,
       用户表.name ,
       权限表.action,
       角色表.groupname
from   用户表,
       角色表,
       用户角色表,
       权限表,
       角色权限表
where  用户表.id=用户角色表.id
   and 用户表.id=角色权限表.id
   and 用户角色表.groupid =角色表.groupid
   and 角色权限表.actionid=权限表.actionid

 

 

//设置查询语句
string strSql = "SELECT * FROM StudentInfo ";
//设置查询条件
string strSql1 = "";
//如果studentid(学号)输入框的内容不为空的话,
if (this.studentid.text!="")
{
//判断查询条件是否为空,如果为空的话,用where
if (strSql1.Length==0)
{
  //加入查询条件
  strSql1 = "WHERE (studentid = "+this.studentid.text+") ";
}
//如果不为空的话,用and
else
{
  //加入查询条件
  strSql1 += "and (studentid = "+this.studentid.text+") ";
}
}
//如果studentname(姓名)输入框的内容不为空的话,
if (this.studentname.text!="")
{
//判断查询条件是否为空,如果为空的话,用where
if (strSql1.Length==0)
{
  //加入查询条件
  strSql1 = "WHERE (studentname = "+this.studentname.text+") ";
}
//如果不为空的话,用and
else
{
  //加入查询条件
  strSql1 += "and (studentname = "+this.studentname.text+") ";
}
}


create proc spyourname
(
@name1 varchar(20),
@name2 varchar(20),
@name3 varchar(20),
@name4 varchar(20),
@name5 varchar(20)
)
WITH ENCRYPTION
as
set nocount on
declare @SQL varchar(5000)
set @SQL='select name1,name2,name3,name4,name5 from yourtable where 1=1 '
if @name<>''
set @SQL=@SQL+ ' and name1 like ''%'+@name+'%'''
if @belong1<>''
set @SQL=@SQL+ ' and name2 like ''%'+@belong1+'%'''
if @belong2<>''
set @SQL=@SQL+ ' and name3 like ''%'+@belong2+'%'''
if @belong3<>''
set @SQL=@SQL+ ' and name4 like ''%'+@belong3+'%'''
exec(@SQL)

 

原创粉丝点击