找了网上的资料看了一下isnull()的用法,看了半天,弄懂了,但是自己测试的结果却与之背道而驰,因此自己总结一下,与人方便。代码如下:
CREATE TABLE test_jean1
(
id varchar(10)
,name varchar(10)
);
INSERT INTO test_jean1 (id,name) VALUES('65','JEAN');
INSERT INTO test_jean1 (id,name) VALUES('','lily');
INSERT INTO test_jean1 (name) VALUES('terry');
INSERT INTO test_jean1 (id,name) VALUES('003','panpan');
SELECT *
FROM test_jean1
WHERE ISNULL(id,'65')='65'
--result: id name
-- 65 JEAN
-- NULL terry
SELECT *
FROM test_jean1
WHERE ISNULL(id,'11')='11'
--result: id name
-- NULL terry
SELECT *
FROM test_jean1
WHERE ISNULL(id,'11')='65'
--result: id name
-- 65 JEAN
SELECT *
FROM test_jean1
WHERE ISNULL(id,'')=''
--result: id name
-- NULL terry
-- lily
总结:ISNULL(A,B) =C
情况:1.IF A=C AND B=C
THEN 输出id =C 和id is null 的所有记录,
2.IF A=C AND B<> C
THEN 输出id=C的所有记录
3.IF A<>C AND B=C
THEN 输出id is null 的所有记录
4.IF A<>C AND B<>C
THEN 没有记录~~
ok 下班啦~~
额。。。。
上面的例子虽然是正确的,可是我的理解却还是错了 ,下面是正确的理解
ISNULL ( check_expression , replacement_value )
先判断check_expression 是否为空,如果为空则返回 replacement_value ,否则返回本身的值,好了,终于懂了
下班啦~~
转载于:https://blog.51cto.com/jeanup/1262390