数据库中null和''具体的区别
今天在开发数据库的时候碰到了一个判断,判断其中的一个参数是否为空
-- =============================================
-- Author: zhwg
-- Create date: 2008-9-20
-- Description: 测试null 和 ''的区别
-- =============================================
Create PROCEDURE p_Test
@argString varchar(2000)
AS
BEGIN
Declare @strTest varchar(2000)
Set @strTest = 'This is a test!'
if @argString != '' And @argString != null
Begin
print @strTest + 'zhwg'
End
END
GO
如果不加判断@argString != null,即使输入参数值是''也仍然会打印出来This is a test!
而加入判断@argString != null,则不会输出打印。
不知道原因是什么,希望高手讲解
test_table中有字段test_char varchar(20)
执行
update test_table
set test_char=null
之后
select integer(test_char)
from test_table
可以查询出test_char=null
但是
update test_table
set test_char=‘’
之后
select integer(test_char)
from test_table
就报sql error
所以请问null和‘’有什么区别啊?
--------------------------------------------------------------------------------
NULL 是 NULL,'' 是 ''。
就好比 C 语言里的 NULL 字符指针和 "" 字符串一样。