澳门游戏平台大全 电子游戏平台 电子游戏平台多条件查询的程序_数据库其它_脚本之家,交叉表查询

电子游戏平台多条件查询的程序_数据库其它_脚本之家,交叉表查询

代码如下所示:

而在对用户进行查询时,也可能会使用到多种条件的查询方式,如通过工号查询、通过姓名查询、通过性别查询、通过学历查询等。也有可能会通过多种条件的组合查询,如查学历是大专的女员工等。
对于这种查询情况,通常的作法是让用户输入查询条件,再进行SQL语句组合来进行查询。如让用户输入工号、姓名等,单击提交按钮之后,在后台获得这些信息,如以下代码所示:
复制代码 代码如下://设置查询语句 string
strSql = “SELECT *电子游戏平台, FROM [user] where UserState=1 “;
//如果用户名不为空则添加查询条件 if { strSql += “and (UserName’=
“+UserName+”‘) “; } //如果性别不为空则添加查询条件 if { strSql += “and
“; }在创建完SQL语句之后,执行该语句获得查询结果。
这种是使用得最多并且是最不安全的方法,因为这是最容易让别人SQL注入攻击的一个方式。
如果想要避免SQL注入攻击,可以将查询语句写在存储过程中,然后使用SqlParameter将参数传递给存储过程,但是,一个多条件查询的存储过程需要怎么写呢?
其实,这个存储过程并不难,可以使用以下方式: 复制代码 代码如下:CREATE PROCEDURE
[dbo].[UserCheck] @UserId varchar = null, @UserName varchar = null,
@RealName varchar = null, @Sex bit = null, @JobTitle varchar = null,
@Organ varchar = null, @IDCardType smallint = null, @IDCard varchar =
null, @Mobile varchar = null AS BEGIN select * from [user] where
UserId like case when @UserId is null then UserId else @UserId end and
UserName like case when @UserName is null then UserName else @UserName
end and RealName like case when @RealName is null then RealName else
@RealName end and Sex = case when @Sex is null then Sex else @Sex end
and JobTitle like case when @JobTitle is null then JobTitle else
@JobTitle end and Organ like case when @Organ is null then Organ else
@Organ end and IDCardType = case when @IDCardType is null then
IDCardType else @IDCardType end and IDCard like case when @IDCard is
null then IDCard else @IDCard end and Mobile like case when @Mobile is
null then Mobile else @Mobile end END

表landundertake结构如下所示:

表appraiser结构如下所示:

access代码:复制代码 代码如下: TRANSFORM
First(Landundertake.valuerId) AS valuerId之First SELECT
Appraiser.quarterId, Landundertake.landCode FROM Landundertake INNER
JOIN Appraiser ON (Landundertake .valuerId = Appraiser.valuerID) AND
(Landundertake .quarterId = Appraiser.quarterId) GROUP BY
Appraiser.quarterId, Landundertake .landCode PIVOT Landundertake
.valuerGrade; SQL server代码: 复制代码
代码如下: select dbo.appraiser.quarterID,dbo.landUndertake.landcode,case
dbo.landUndertake.appraiserGrade when ‘appraiserID1’ then
dbo.landundertake.appraiserID else null END as appraiserID,case
dbo.landUndertake.appraiserGrade when ‘appraiserID2’ then
dbo.landundertake.appraiserID else null END as appraiserID1 from
dbo.LandUndertake inner join dbo.Appraiser ON
dbo.LandUndertake.quarterID=dbo.appraiser.quarterID and
dbo.landundertake.appraiserID=DBO.Appraiser.appraiserID Group by
dbo.appraiser.quarterID,dbo.landUndertake.landcode,dbo.landundertake.appraiserGrade,dbo.landundertake.appraiserID
交叉表查询结果如下所示:

标签:, , , , , , , ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图