SqlServer 多条件查询 [存储过程] 经典例子

原创 2007年09月13日 15:46:00
 首先要感谢 网友[来自Sql Server 技术空间群]简单爱的大力支持...
 需要注意的问题 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+''''
 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

15个常用sql语句 分支 循环 子查询 存储过程 事务 常用函数 sql语句执行过程(转载备用)

常用sql语句
  • luckysiesteven
  • luckysiesteven
  • 2015年10月15日 09:59
  • 2031

SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法

本文出处: http://www.cnblogs.com/wy123/p/5958047.html    最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,...
  • jiangfei009003
  • jiangfei009003
  • 2016年12月22日 16:57
  • 1439

SqlServer参数化查询与存储过程

突然把参数化查询和存储过程联系到一起了,大家如果不知道的话,一起来看看吧。...
  • xiaouncle
  • xiaouncle
  • 2016年08月14日 18:21
  • 1823

c#多条件查询存储过程实例

  • 2009年01月05日 14:23
  • 857B
  • 下载

使用MVC,实现多条件查询,排序与分页 的 存储过程

ViewModel:  #region 交易信息列表     public class ProjectInfoList     {         ///         /// 交易信息...
  • u010796875
  • u010796875
  • 2014年07月16日 18:16
  • 748

repeater插入,多选删除,条件查询实例(存储过程实现)

前台:基本实现页面,全选js等                     function Check() {             var oElements = documen...
  • liziki
  • liziki
  • 2012年08月16日 09:59
  • 485

SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如...
  • limingblogs
  • limingblogs
  • 2016年04月25日 21:53
  • 1359

万能分页存储过程(带第一页性能优化,任意条件查询,任意字段排序)

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO /* 分页排序存储过程 V1.0 */ create procedure [...
  • hunzi6
  • hunzi6
  • 2012年05月23日 10:15
  • 145

SQLSERVER存储过程例子

  • 2013年07月22日 09:32
  • 4KB
  • 下载

sqlserver存储过程入门例子加讲解.

  • 2015年06月15日 22:00
  • 13KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SqlServer 多条件查询 [存储过程] 经典例子
举报原因:
原因补充:

(最多只允许输入30个字)