sql中Isnull不起作用

清风明月001 2014-01-20 03:39:46


select Isnull(CertificateNo,'G检D类140130001')
from T_WeiTuoBook
where AreaId='3' and SubDepart='3' and DeviceType='D' and Isnumeric(Right(CertificateNo,7))=1
and substring(CertificateNo, 5,2) = right(year(getdate()),2)

当CertificateNo没有最大值时,我想把‘G检D类140130001’作为默认值。但是结果如图,什么也没有,请问是怎么回事?
...全文
573 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
清风明月001 2014-01-20
  • 打赏
  • 举报
回复
引用 5 楼 liuchaolin 的回复:
select Isnull((select CertificateNo from T_WeiTuoBook where AreaId='3' and SubDepart='3' and DeviceType='D' and Isnumeric(Right(CertificateNo,7))=1 and substring(CertificateNo, 5,2) = right(year(getdate()),2)),'G检D类140130001')
多谢楼上!
md5e 2014-01-20
  • 打赏
  • 举报
回复
select Isnull((select CertificateNo from T_WeiTuoBook where AreaId='3' and SubDepart='3' and DeviceType='D' and Isnumeric(Right(CertificateNo,7))=1 and substring(CertificateNo, 5,2) = right(year(getdate()),2)),'G检D类140130001')
清风明月001 2014-01-20
  • 打赏
  • 举报
回复
我想表达的意思就是,当查询数据库后,如果没有记录,就返回一个默认值'G检D类1410001',这个是写在自定义函数里的,如果没有记录3楼的Isnull是不起作用的。
md5e 2014-01-20
  • 打赏
  • 举报
回复
isnull不是这么用的,isnull是当有记录,字段为null的情况下去替换,不而是没有找到记录时返回 Select isnull((select cast('' as nvarchar(100)) From gl_g_user WHere id>999999),'没有找到')
  • 打赏
  • 举报
回复
isnull是表示在有数据返回的情况下,当前返回值为null则取后面定义的。。。。你这个是一行数据都没返回。。。isnull当然不起作用了 对于这样你可以在程序里写
string certificateNo;
IDataReader dr;
if(dr.Read())
{
   certificateNo= dr[0].ToString();
}
else
{
  certificateNo="G检D类140130001";
}
清风明月001 2014-01-20
  • 打赏
  • 举报
回复
不好意思,是G检D类1410001最为默认值

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧