判断方法: if ISNULL(aBegBalRule) || LENGTH(trim(aBegBalRule))<1 THEN ELSE END IFNULL值可能令人感到奇怪直到你习惯它。概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。为了测试NULL,你不能使用算术比较 *** 作符例如=、<或!=。为了说明它,试试下列查询: mysql>SELECT 1 = NULL, 1 <>NULL, 1 <NULL, 1 >NULL+----------+-----------+----------+----------+ | 1 = NULL | 1 <>NULL | 1 <NULL | 1 >NULL | +----------+-----------+----------+----------+ 返回信鸽网顶部| NULL | NULL | NULL | NULL | +----------+-----------+----------+----------+ 很显然你不能通过这些比较得到有意义的结果。相反使用IS NULL和IS NOT NULL *** 作符: mysql>SELECT 1 IS NULL, 1 IS NOT NULL+-----------+---------------+ | 1 IS NULL | 1 IS NOT NULL | +-----------+---------------+ | 0 | 1 | +-----------+---------------+ 请注意在MySQL中,0或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1。 返回信鸽网顶部对NULL的特殊处理即是在前面的章节中,为了决定哪个动物不再是活着的,使用death IS NOT NULL而不使用death != NULL的原因。 在GROUP BY中,两个NULL值视为相同。 执行ORDER BY时,如果运行 ORDER BY ... ASC,则NULL值出现在最前面,若运行ORDER BY ... DESC,则NULL值出现在最后面。 NULL *** 作的常见错误是不能在定义为NOT NULL的列内插入0或空
字符串,但事实并非如此。在NULL表示"没有数值"的地方有数值。
字段为空有两种情况
判断字段为空
判断字段不为空
trim可以不写,直接写(column)
参考: https://www.cnblogs.com/kingboy-xin/p/10825085.html .
"空值"是对null值的中文叫法,两者同指一个东西。
我想楼主是想弄清楚null(空值)与零长度字符串''(或称为空字符串)之间的区别。
在代码里"零长度字符串"用一对没有间隔的英文引号''表示,它的数据类型是明确的即属于字符型,存储"零长度字符串"是要占用物理磁盘空间的;
而null值其数据类型是未知的,它不会占用物理磁盘空间。
在不存在约束限制的情况我们可以将Null值插入任何数据类型的字段里,而零长度字符串''只能插入到字符型数据类型字段中,插入其它类型字段会报错。
我们通过实测看看null(空值)与零长度字符串''(或称为空字符长)之间的区别:
1)输出所有的记录
select * from students
注意:此例输出源表中的全部记录,含null(空值)和零长度字符串''.
2)输出电话为Null(空值)的记录
select * from students where phone is null
注意:此例只输出含Null(空值)的记录
3)输出电话为零长度字符串的记录
select * from students where phone=''
注意:此例只输出含零长度字符串的记录。
4)输出电话不是零长度字符串的记录
select * from students where phone<>''
注意:此例MySQL的处理方式有些特别,连含Null值得记录也排除掉了,这与MSSQL的处理方式有点不一致。
5)输出电话不为空的记录
select * from students where phone is not null
注意:此例只要不含Null值的记录都予以输出
评论列表(0条)