在 MS SQL 中 IsNULL(A,0) 的功能:判斷A是否空,如為空用0代替A,不為空則是A.

解决方案 »

  1.   

    返回所有A不为空的记录:
    select A from A_Table where A IS NOT NULL
      

  2.   

    declare @d int
    select @d=3
    select isnull(@d,0)
    我运行了1000次还是3不是0
      

  3.   

    这样试试
    如果确保数据库中A有值为3.00
    那么
    select a from a_table
    看看还为0不?
      

  4.   

    首先你确认a=3这行记录在a_table中?
    select * from a_table返回什么?
      

  5.   

    天哪!!!!你看一下你的SQL 它的返回的記錄數是不是一條呀????一定是多條記錄才會導至如此的。
      

  6.   

    其实我只是在纳闷一个问题,我一开始不知道A是NOT NULL,在统计时用了,ISNULL,结果总是不对,我检查了好久才找到问题所在,就是我说的了,用SELECT * FROM A_TABLE得到的结果是正确的3。00,我做数据库已有近3年的时间了,不要把我当新手,我只是想问问大家有没有遇到这么奇怪的问题
      

  7.   

    如果语句SELECT A FROM A_TABLE 
    的返回结果为Null
    则语句SELECT ISNULL(A,0) FROM A_TABLE 
    的返回结果为0
    绝对没错!!!!!!!!!!!!!
      

  8.   

    可能與你的机器設置會有關系(猜的),不知道你是否注意到SQL Server中其它的函數會有類似的問題,你比如說 Ceiling函數,Select Ceiling(500/3), 結果會等於166, 可是如果這些數據放在 table里的話,結果會等於167: select ceiling(FldName/3) From tblTest WHERE ID=1 AND FldName=500所以有些現在真的是很奇怪,我上微軟的TechNet查了很久都沒有結果,還請高人指點。