请问sql server里什么方法能判断一个字段是否为空并返回布尔值

时间:2021-06-05 14:48:33
新手小白一个求教大神们   用office写的iif语句换到sql server上要怎么实现啊
比如  iif(isNull(a.nian),1,2)  

7 个解决方案

#1


case when a.nian is null then 1 else 2 end

#2


CASE WHEN ISNULL(a.nian,NULL) IS NULL THEN 0 ELSE 1 END 

#3


引用 1 楼 yenange 的回复:
case when a.nian is null then 1 else 2 end


谢谢  请问这个是只能判断是否为null吗  我想在else 后面再加个 case when  然后想继续判断是否为日期的话呢
请问有方法能实现吗  求教谢谢了
case when A.Date is null then  A.Date else case when IsDate(A.Date) 
then Format(DateAdd('m',-3,A.Date),'yyyy'),
else Format(DateAdd('m',-3,Left(A.Date,4)+'/4/1'),'yyyy')))

#4


可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end


#5


引用 4 楼 appetizing_fish1 的回复:
可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end




谢谢大神  请问sql server里什么方法能判断一个字段是否为空并返回布尔值

#6


引用 5 楼 weixin_39402825 的回复:
Quote: 引用 4 楼 appetizing_fish1 的回复:

可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end




谢谢大神  请问sql server里什么方法能判断一个字段是否为空并返回布尔值


不用谢, 记得结贴啊. 请问sql server里什么方法能判断一个字段是否为空并返回布尔值

#7


引用 6 楼 appetizing_fish1 的回复:
Quote: 引用 5 楼 weixin_39402825 的回复:

Quote: 引用 4 楼 appetizing_fish1 的回复:

可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end




谢谢大神  请问sql server里什么方法能判断一个字段是否为空并返回布尔值


不用谢, 记得结贴啊. 请问sql server里什么方法能判断一个字段是否为空并返回布尔值


好的不说真忘了 第一次来  谢谢哈 请问sql server里什么方法能判断一个字段是否为空并返回布尔值

#1


case when a.nian is null then 1 else 2 end

#2


CASE WHEN ISNULL(a.nian,NULL) IS NULL THEN 0 ELSE 1 END 

#3


引用 1 楼 yenange 的回复:
case when a.nian is null then 1 else 2 end


谢谢  请问这个是只能判断是否为null吗  我想在else 后面再加个 case when  然后想继续判断是否为日期的话呢
请问有方法能实现吗  求教谢谢了
case when A.Date is null then  A.Date else case when IsDate(A.Date) 
then Format(DateAdd('m',-3,A.Date),'yyyy'),
else Format(DateAdd('m',-3,Left(A.Date,4)+'/4/1'),'yyyy')))

#4


可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end


#5


引用 4 楼 appetizing_fish1 的回复:
可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end




谢谢大神  请问sql server里什么方法能判断一个字段是否为空并返回布尔值

#6


引用 5 楼 weixin_39402825 的回复:
Quote: 引用 4 楼 appetizing_fish1 的回复:

可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end




谢谢大神  请问sql server里什么方法能判断一个字段是否为空并返回布尔值


不用谢, 记得结贴啊. 请问sql server里什么方法能判断一个字段是否为空并返回布尔值

#7


引用 6 楼 appetizing_fish1 的回复:
Quote: 引用 5 楼 weixin_39402825 的回复:

Quote: 引用 4 楼 appetizing_fish1 的回复:

可以这样


case when A.Date is null 
     then  A.Date 
 else case when IsDate(A.Date)=1
               then Format(DateAdd(month,-3,A.Date),'yyyy')
               else Format(DateAdd(month,-3,Left(A.Date,4)+'/4/1'),'yyyy')
   end
 end




谢谢大神  请问sql server里什么方法能判断一个字段是否为空并返回布尔值


不用谢, 记得结贴啊. 请问sql server里什么方法能判断一个字段是否为空并返回布尔值


好的不说真忘了 第一次来  谢谢哈 请问sql server里什么方法能判断一个字段是否为空并返回布尔值