(转)SQL Server多条件查询经典例子-阿里云开发者社区

开发者社区> 暖枫无敌> 正文

(转)SQL Server多条件查询经典例子

简介: 这是一个不错的例子,特转载分享之。   ------------表中的字段---------------CREATE TABLE [dbo].
+关注继续查看

这是一个不错的例子,特转载分享之。

 

------------表中的字段---------------
CREATE TABLE [dbo].[stuInfo] (
[FNumber] [int] IDENTITY(1,1) NOT NULL ,
[FName] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FNameen] [varchar] (35) COLLATE Chinese_PRC_CI_AS ,
[FSex] [char] (1) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FEducation] [char] (1) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FCardID] [char] (18) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FBirDate] [datetime] NOT NULL ,
[FTech] [nvarchar](50) COLLATE Chinese_PRC_CI_AS ,
[FSubject] [nvarchar](50) COLLATE Chinese_PRC_CI_AS,
[FJiF] [nvarchar](100)COLLATE Chinese_PRC_CI_AS,
[FJobAdd][nvarchar](100)COLLATE Chinese_PRC_CI_AS,
[FExamNum][varchar](30)COLLATE Chinese_PRC_CI_AS NOT NULL,
[FServerNum] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FExamDate] [datetime] NOT NULL ,
[FIsAE] [char] (1) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
----------
存储过程-------------------------
IF EXISTS(SELECT *FROM SYSOBJECTS WHERE NAME='PROC_Look')
DROP PROC PROC_Look
GO
CREATE PROC PROC_Look
@FName NVARCHAR(30)=null,
@FNameen VARCHAR(35)=null,
@FCardID CHAR(18)=null,
@FExamNum NVARCHAR(30)=null,
@FServerNum NVARCHAR(30)=null,
@FSex CHAR(1)=null,
@FEducation NVARCHAR(20)=null,
@FIsAE CHAR(1)=null,
@FTech NVARCHAR(50)=null,
@FSubject NVARCHAR(50)=null,
@FJiF NVARCHAR(100)=null,
@FJobAdd NVARCHAR(100)=null,
@FStartTime VARCHAR(20)=null,
@FEndTime VARCHAR(20)=null

AS
declare @sqlStr varchar(500)
        declare @man char(2)
        declare @wom char(2)
        declare @is char(2)
        declare @no char(2)
        set @man ='
'
        set @wom ='
'
        set @is ='
'
        set @no ='
' if @FName <>''
begin
   set @sqlStr=' where FName='+''''+@FName+''''
end
       
if @FNameen <>''
begin
    if @sqlStr <>''
        set @sqlStr=@sqlStr+' and FNameen='+''''+@FNameen+''''
    else
   set @sqlStr=' where FNameen='+''''+@FNameen+''''
end
   
if @FCardID <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FCardID='+''''+@FCardID+''''
else
   set @sqlStr=' where FCardID='+''''+@FCardID+''''
end

if @FExamNum <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FExamNum='+''''+@FExamNum+''''
else
   set @sqlStr=' where FExamNum='+''''+@FExamNum +''''
end


if @FServerNum <>''
begin
   if @sqlStr <>''
    set @sqlStr=@sqlStr+' and FServerNum='+''''+@FServerNum+''''
   else
    set @sqlStr=' where FServerNum='+''''+@FServerNum+''''
end if @FSex <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FSex='+''''+@FSex+''''
else
   set @sqlStr=' where FSex='+''''+@FSex+''''
end if @FEducation <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FEducation='+''''+@FEducation+''''
                       
                else
   set @sqlStr=' where FEducation='+''''+@FEducation+''''
  
end if @FIsAE <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FIsAE= '+''''+@FIsAE+''''
                       
else
   set @sqlStr=' where FIsAE= '+''''+@FIsAE+''''
                       
end if @FTech <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FTech='+''''+@FTech+''''
else
   set @sqlStr=' where FTech='+''''+@FTech+''''
end

if @FSubject <>''
   begin
    if @sqlStr <>''
     set @sqlStr=@sqlStr+' and FSubject='+''''+@FSubject+''''
    else
     set @sqlStr=' where FSubject='+''''+@FSubject +''''
   end

if @FJiF <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FJiF='+''''+@FJiF+''''
else
   set @sqlStr=' where FJiF='+''''+@FJiF+''''
end if @FJobAdd <>''
begin
if @sqlStr <>''
   set @sqlStr=@sqlStr+' and FJobAdd='+''''+@FJobAdd +''''
else
   set @sqlStr=' where FJobAdd='+''''+@FJobAdd +''''
end

if @FStartTime <>''
                begin

if @sqlStr <>''
                      
                        set @sqlStr=@sqlStr+' and FExamDate>= '+''''+@FStartTime+'''' else
   set @sqlStr=' where FExamDate>= '+''''+@FStartTime+''''
   end

if @FEndTime <>''
   begin
    if @sqlStr <>''
     set @sqlStr=@sqlStr+' and FExamDate<= '+''''+@FEndTime+''''
    else
     set @sqlStr=' where FExamDate<= '+''''+@FEndTime+''''
   end     
       EXEC('select FNumber,FName,FNameen,FSex=CASE WHEN FSex=0 THEN ' +''''+@man+''''+ ' ELSE '+''''+ @wom+''''+ ' END,FEducation,FCardID,FBirDate,FTech,FSubject,FJiF,FJobAdd,FExamNum,FServerNum,FExamDate,FIsAE=CASE WHEN FIsAE=0 THEN'+ ''''+@is+''''+' ELSE '+''''+@no+''''+' END from stuInfo'+@sqlStr)GO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
hibernate的多条件查询——Criteria Query的应用
  查询数据时,人们往往需要设置查询条件。在SQL或HQL语句中,查询条件常常放在where子句中。此外,Hibernate还支持Criteria查询(Criteria Query),这种查询方式把查询条件封装为一个Criteria对象。在实际应用中,使用Session的createCriteria()方法构建一个org.hibernate.Criteria实例,然后把具体的查询条件通过
2102 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
8374 0
MySQL 关联多表查询更新例子 & from LOW B
update change_request cr inner join application app on cr.app_name = app.app_name inner join aone_product p on p.
673 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11902 0
+关注
625
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载