找了网上的资料看了一下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 ,否则返回本身的值,好了,终于懂了

下班啦~~