如何查询一条记录里不为空的几个字段

hwf0217 2017-11-05 09:27:51



请假大家个问题,我想查询一条记录里,不为空的几个字段;
比如上面表里的 "路东泵站"
我想结果就是 只显示路东泵站的几个有数值的字段,其他没有数值的字段不显示
当然路东泵站只是举例,类似还有其他泵站
...全文
1264 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowpj 2017-11-06
  • 打赏
  • 举报
回复
declare @tmp varchar(100), --临时记录需要查询字段串 @gc varchar(20) --每条记录空的字段不一样,只能一条判断,暂且已不重复工程名称做条件 set @gc='东路工程' --谢塘改造工程 东路工程 set @tmp='工程名称' if (select IsNull(工程地点,'') from a where 工程名称=@gc)<>'' set @tmp=@tmp+',工程地点' if (select IsNull(工程造价,'') from a where 工程名称=@gc)<>'' set @tmp=@tmp+',工程造价' if (select IsNull(工程人员,'') from a where 工程名称=@gc)<>'' set @tmp=@tmp+',工程人员' if (select IsNull(设备,'') from a where 工程名称=@gc)<>'' set @tmp=@tmp+',设备' if (select IsNull(备注,'') from a where 工程名称=@gc)<>'' set @tmp=@tmp+',备注' --后面还有字段自己顺着加判断。。。。 exec('select '+@tmp+' from a where 工程名称='''+@gc+'''')
听雨停了 2017-11-06
  • 打赏
  • 举报
回复
你说的这个需求是没有办法实现的,很简单的道理,假如表一共十个字段,第一行数据有两个为null的字段,第二行有三个为null的字段,第三行有8个为null的字段,那么请问查询出来的数据,一个8行,一个7行,一个2行,怎么合并到一起显示?
spiritofdragon 2017-11-06
  • 打赏
  • 举报
回复
楼主想要的是,不为空的列。。。这个需求,动态sql可以实现(比如,查出那条记录后,挨个判断select 字段的值是否为空,不为空的再重新拼sql的select字段,再查询)。但是,这种做法不是写sql正常习惯,不建议这么做。
日月路明 2017-11-06
  • 打赏
  • 举报
回复
看这意思楼主的空包含空字符串 增加条件 IsNull(FieldName,'')<>''
wwfxgm 2017-11-06
  • 打赏
  • 举报
回复
字段 is not null 不行吗?
卖水果的net 版主 2017-11-06
  • 打赏
  • 举报
回复
贴子发重了,另一个已经回复你。
hwf0217 2017-11-06
  • 打赏
  • 举报
回复
帖子发重复了,这个贴我先结了,另个贴我继续问下大家

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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