SQL SERVER 2008---NULLIF

来源:互联网 发布:大和田常务 知乎 编辑:程序博客网 时间:2024/06/05 05:34

今天做项目时遇到一个问题:画面上有选择日期的地方,当然这个日期不是必填项,可以不选择,但是如果不选择的话就会以string.empty的形式向数据库插入/更新数据,这时数据库中存在的其实是1900-01-01,而不是我想要的空字符串;再检索画面时,就直接将1900-01-01显示出来了。

解决方法:

使用NULLIF函数,在插入/更新语句中使用

 

select nullif('a','')      //结果:a

select nullif('a','b')    //结果:a

select nullif(null,'b')  //结果:NULLIF 的第一个参数的类型不能是 NULL 常量,因为第一个参数的类型必须是已知的

select nullif('','b')      //结果:空字符串

select nullif('','')        //结果:NULL

利用上面蓝色字体就可以向数据库中插入NULL,而不会插入1900-01-01了

例:

insert into tMyTable
    (dDate)
values
    (nullif('',''))

------结果------

      iAuto_id    dDate

           1          NULL

 

原创粉丝点击