当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-01-25 23:11:00  来源:本站整理

<b>巧用SQL中case when语句实现模糊查询</b>[MSSQL防范]

赞助商链接



  本文“<b>巧用SQL中case when语句实现模糊查询</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

利用SQL中case when语句,可以实现我们需求的模糊查询,下面为您介绍SQL case when语句实现模糊查询的脚本,但愿对您学习SQL中case when语句的利用有所启迪.

我们在举行项目开辟中,常常会碰到多条件模糊查询的需求.对此,我们常见的办理筹划有两种:一是在程序端拼接SQL字符串,按照能否挑选了某个条件,构造呼应的SQL字符串;二是在数据库的存储历程中利用动态的SQL语句.其本质也是拼接SQL字符串,不过是从程序端转移到数据库端罢了.

这两种方法的缺陷是显而易见的:一是当多个条件每个都可为空时,要利用多个if语句举行判断;二是拼接的SQL语句简单产生SQL注入漏洞.

近来写数据库存储历程的时刻常常利用case when 语句,恰好可以用这个语句办理一下以上问题.以SQL中的NorthWind数据库为例,我要操作的是此中的Employees表,该表中默许数据以下:

利用以下脚本来查询表中数据:

  1. 1 DECLARE @FirstName  NVARCHAR(10),  
  2. 2         @LastName   NVARCHAR(20);  
  3. 3 SELECT @FirstName = '',   
  4. 4        @LastName = '';   
  5. 5 SELECT *   
  6. 6 FROM   Employees c  
  7. 7 WHERE  CHARINDEX(  
  8. 8            (  
  9. 9                CASE   
  10. 10                     WHEN @FirstName = '' THEN FirstName  
  11. 11                     ELSE @FirstName  
  12. 12                END  
  13. 13            ),  
  14. 14            FirstName  
  15. 15        ) > 0  
  16. 16        AND CHARINDEX(  
  17. 17                (CASE WHEN @LastName = '' THEN LastName ELSE @LastName END),  
  18. 18                LastName  
  19. 19            ) > 0 
<
  以上是“<b>巧用SQL中case when语句实现模糊查询</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .