您现在的位置:软界网技术中心数据库SQLServer > 技术显示
SqlServer 多条件查询 [存储过程] 经典例子
2007-12-12 18:54:41   网友评论       阅读次数 点此评论
   

需要注意的问题 NULL, ' ' 的区别
SELECT *FROM 表 WHERE Fdate > ' 2007-6-7' 字符之间的比较,还是时间之间的比较..........
------------表中的字段---------------
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+'''' 软件开发网 www.mscto.com
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  
      来源: 作者:
 
【评论查看】