SELECT * FROM NewsType WHERE ISNULL(ParentNewtypeCode,'')=ISNULL(@ParentNewtypeCode,ISNULL(ParentNewtypeCode,'')) ORDER BY ParentNewtypeCode,NewTypeCode DESC
为什么要ISNULL(ParentNewtypeCode,'')=ISNULL(@ParentNewtypeCode,ISNULL(ParentNewtypeCode,''))去判断 
有什么好处呢

解决方案 »

  1.   

    按照你那个帖子的意思 直接写成SELECT * FROM NewsType WHERE ParentNewtypeCode =@ParentNewtypeCode就可以吗
    我平常也是SELECT * FROM NewsType WHERE ParentNewtypeCode =@ParentNewtypeCode写的 可看到高手这样写 以为有更好的用途
      

  2.   

    isnull的用法http://www.w3school.com.cn/sql/sql_isnull.asp
    我觉得是为了避免当ParentNewtypeCode 为空时, sql不正常执行
      

  3.   

    ISNULL(ParentNewtypeCode,'')
    如果ParentNewtypeCode 是null,那么ISNULL(ParentNewtypeCode,'')
    的值就是'' 
      

  4.   

    只是一个判断,避免sql异常执行;7楼答案不错;
      

  5.   

    在sql server中null值是可以直接进行比较的,我不明白为什么要把null转成一个空字符串去比较
      

  6.   

    避免异常的,为null则默认 ''
      

  7.   

    对呀 对呀  哦 那就当成没有用吧  我是感觉没有这个必要  我接下来问第二个问题
    2:set @sqlwhere=@sqlwhere+N'AND ISNULL(TemplateName,'''')=ISNULL(@TemplateName,ISNULL(TemplateName,''''))' 那个N大家看到没  不知道什么意思
      

  8.   

    这样可以避免为NULL时。出现错误
      

  9.   

    ISNULL通俗的讲是用来消除空(NULL)值。语法: ISNULL(字段/变量,替代值)
      

  10.   


    只是避免sql异常,并不一定是肯定有异常;
      

  11.   

    跟那个null==a VS a==null
    差不多吧
    编程习惯防止为空???
      

  12.   

    佳答案null一定要用is null或is not null,
    因为null代表不确定,它即不会等于任务值也不会不等于任务值, 所以任何值用>= (或<>, =, <) 等运算符和null比较得到的结果都是false 
    这是正解了吧
      

  13.   


    刚才我试了一下,
    select * from xxx where 字段1 = null是不好使的,可能是所谓的异常吧,
    如果写成
    select * from xxx where 字段1 is null才会查出想要的数据这样的话,isnull这个函数的确是能起到排除异常的作用
      

  14.   

    避免出错~ 避免null接分来呢
      

  15.   

    关于那个吧NULL转化成字符串的问题  我还是不裂解  想请各位来再说说  说完我就结贴   NULL我已经使过了  是不会有异常的  希望大家说出实验的结果 不要随波逐流  这样我得到的答案就没有新的
      

  16.   

    N的作用就是如果你的操作系统是简体中文,你在N后面的单引号里输入了日本、德文、法文什么的,能保证你的字符串是正确的,这时N就要必写;反之如果N后面的单引号里只有英文和简体中文(长度不能超过十几K),那这个N写与不写是一样的。
      

  17.   


    where 字段1 = null 这样写,即使字段1有null值,你依然查不到任何东西,
    只能用is null才会查到为null的记录。所以说这里如果这样写:
    SELECT * FROM NewsType WHERE ParentNewtypeCode =@ParentNewtypeCode
    如果@ParentNewtypeCode这个参数为null,就变成了
    SELECT * FROM NewsType WHERE ParentNewtypeCode = null
    是查不到东西的只能写成
    SELECT * FROM NewsType WHERE ParentNewtypeCode is null
      

  18.   

    个人这样用过,当时不是为了避免异常,主要是有时候需要表连接什么的,碰到null把他变成‘’继续表连接。
    不过这只是个人遇到的情况,也不一定是你那段代码的原意。
      

  19.   


    create table tempTable
    (
       tempColumn nvarchar(50)
    )insert into tempTable select null
    union all select 1
    union all select 2select * from tempTabledeclare @var nvarchar(50)set @var=nullselect * from tempTable where tempColumn = @varselect * from tempTable where tempColumn is nullselect * from tempTable where isnull(tempColumn,'') = isnull(@var,'')set @var=1select * from tempTable where tempColumn = @vardrop table tempTable