SQL模糊查询碰到空值怎么办?
作者:iamlaosong
SQL查询语句用%来做模糊查询。程序中一般要求用户输入部分信息,依据这个信息进行模糊查询。
比如用户输入340104,以下这条语句就是查询昨天客户代码为340104开头的全部邮件信息:
select * from tb_evt_mail_clct t
where t.clct_date = trunc(sysdate - 1)
and t.sender_cust_code like '340104%'
当用户什么都不输入须要查询昨天全部邮件信息时,以下的语句并不能查询到全部信息,这条语句仅仅能查到全部大客户的邮件信息,查不到散户的邮件信息:
select * from tb_evt_mail_clct t
where t.clct_date = trunc(sysdate - 1)
and t.sender_cust_code like '%'
这是由于散户的客户代码为空值。以下这条语句能够同一时候兼顾上面两种情形(假定用0000代表空值):
有限定值:
select * from tb_evt_mail_clct t
where t.clct_date = trunc(sysdate - 1)
and nvl(t.sender_cust_code,'0000') like '340104%'
无限定值:
select * from tb_evt_mail_clct t
where t.clct_date = trunc(sysdate - 1)
and nvl(t.sender_cust_code,'0000') like '%'
限定值是0000时结果是全部散户:
select * from tb_evt_mail_clct t
where t.clct_date = trunc(sysdate - 1)
and nvl(t.sender_cust_code,'0000') like '0000%'
除了like。not like、not in 、<>等运算符号也都不包括空值,比如以下语句并不包括客户代码为空值的记录:
select * from tb_evt_mail_clct t
where t.clct_date = trunc(sysdate - 1)
and t.sender_cust_code <> '34122600200300'
要想包括。相同须要将条件改为:nvl(t.sender_cust_code,'0000') <> '34122600200300'
总之。当一个字段为空值时。表达式中不管是等于还是不等于,结果都为假,仅仅有 is null结果为真。
SQL模糊查询碰到空值怎么办?的更多相关文章
- 8.mybatis动态SQL模糊查询 (多参数查询,使用parameterType)
多参数查询,使用parameterType.实例: 用户User[id, name, age] 1.mysql建表并插入数据 2.Java实体类 public class User { public ...
- sql模糊查询
SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...
- SQL模糊查询与删除多条语句复习
string IDlist="1,2,3"; 批量删除数据 StringBuilder strsql=new StringBuilder(); strSql.Append(&quo ...
- SQL 模糊查询
在进行数据库查询时,有完整查询和模糊查询之分.一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1,%:表示任意0个 ...
- SQL 模糊查询(like)
在进行数据库查询时,有完整查询和模糊查询之分. SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下: 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadde ...
- [转]SQL 模糊查询
在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,% :表 ...
- Jmeter中JDBC Request和BeanShell PostProcessor的结合使用(SQL模糊查询)
[前言] 今天记录一下Jmeter中JDBC Request和BeanShell PostProcessor的结合使用的方法(SQL模糊查询) [步骤] 1.下载对应数据库的驱动包到jmeter安装目 ...
- SQL模糊查询条件的四种匹配模式
执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件 其中关于条件,SQL提供了四种匹配模式: 1.% :表示任意 ...
- 有关SQL模糊查询
执行 数据库查询时,有完整查询和模糊查询之分. 一般模糊语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,%:表示任意0个 ...
随机推荐
- Java-确定被加载类的路径
如何输出当前类在硬盘的物理路径 package com.tj; import java.net.URL; import java.security.CodeSource; import java.se ...
- Laya list 居中
1.将list放在一个box中,去除box的宽高,设其锚点为0.5,0.5 2.将box的锚点放到目标位置 3.在list渲染后,设定box的宽度为list的宽度
- Cookie窃取实验
文章:IE/FIREFOX/CHROME等浏览器保存COOKIE的位置 Chrome的Cookie数据位于:%LOCALAPPDATA%\Google\Chrome\User Data\Default ...
- HDU-4849 Wow! Such City!,最短路!
Wow! Such City! 题意:题面很难理解,幸亏给出了提示,敲了一发板子过了.给出x数组y数组和z数组的求法,并给出x.y的前几项,然后直接利用所给条件构造出z数组再构造出C数组即可,C ...
- Codeforces Round #390 (Div. 2) A+B+D!
A. Lesha and array splitting 水题模拟.(0:10) 题意:给你一个n个元素的数组,求能否把这个数组分成若干连续小段,使得每段的和不为0.如有多种解输出任意一个. 思路:搞 ...
- tab栏切换效 简易效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- BZOJ 2242 [SDOI2011]计算器 ——EXGCD/快速幂/BSGS
三合一的题目. exgcd不解释,快速幂不解释. BSGS采用了一种不用写EXGCD的方法,写起来感觉好了很多. 比较坑,没给BSGS的样例(LAJI) #include <map> #i ...
- SPOJ QTREE Query on a tree ——树链剖分 线段树
[题目分析] 垃圾vjudge又挂了. 树链剖分裸题. 垃圾spoj,交了好几次,基本没改动却过了. [代码](自带常数,是别人的2倍左右) #include <cstdio> #incl ...
- [luoguP2331] [SCOI2005]最大子矩阵(DP)
传送门 orz不会做... 一个好理解的做法(n^3*k): 分n=1和n=2两种情况考虑. n=1时,预处理出前缀和sum[]. 设f[i][j]为到达第i格,已经放了j个子矩阵的最大和, 那么每次 ...
- 强大!不懂html也来学网抓(xmlhttp/winhttp+fiddler)
http://club.excelhome.net/thread-1159783-1-1.html 学习html强力推荐此网站:http://www.w3school.com.cn/ ,绝对权威 交流 ...