巧用SQL中case when语句实现模糊查询

数据库 SQL Server
如果我们在开发项目的过程中,需要进行模糊查询,应该怎么做呢?下面就将为您介绍使用SQL中case when语句实现模糊查询的方法,供您参考。

使用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 

 

 

 

【编辑推荐】

SQL中if语句的用法示例

巧用SQL server临时表

速学如何定义SQL存储过程

判断sql server表是否存在的方法

SQL Server表变量和临时表的区别

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-07 14:56:49

SQL语句CASE WHEN

2010-10-08 15:54:34

mysql中case

2011-03-07 13:27:13

SQLCase

2010-11-18 13:40:48

mysql分页查询

2010-09-26 10:35:47

sql替换语句

2010-09-07 09:45:48

SQL语句

2011-07-29 14:39:11

CASE WHEN E

2010-10-21 10:28:13

SQL Server查

2010-09-25 16:17:25

SQL语句

2018-12-25 14:40:04

SQL ServerSQL语句数据库

2010-09-07 10:35:38

SQL语句

2010-09-07 14:45:34

sql语句

2023-05-26 07:08:05

CSS模糊实现文字

2018-12-26 09:25:30

SQL ServerSQL语句数据库

2010-09-26 17:09:05

SQL语句

2009-06-08 21:45:46

Javaswitch-case

2009-07-24 16:59:57

iBatis模糊查询

2010-10-29 16:41:12

Oracle模糊查询

2021-08-30 06:20:39

CSS 技巧3D 效果

2010-09-17 10:39:36

SQL中
点赞
收藏

51CTO技术栈公众号