使用linq进行查询,结果为空时,是怎么判断的呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用linq进行查询,结果为空时,是怎么判断的呢?相关的知识,希望对你有一定的参考价值。

清各位大虾帮忙。PS:比如像datatable一样,可以判断它的行数什么的,谢谢:)

参考技术A 例子: var query =( from item from table
select item).count();
这会返回一个查询完毕的记录个数,注意这时已经查询完毕,而不是延迟查询
参考技术B 当一个集合来看待 参考技术C var 出来就是集合啊,判断集合的有没有元素就行了。检查一下Count或者Length本回答被提问者采纳

oracle 查询条件中判断两个字段相等时 一个字段为空则跳过

where 语句后面是 t.dataTime=t2.dataTime 如何进行这样的判断:
当t.dataTime或者 t2.dataTime 为空时 则跳过相等判断,如果两个量都有值则进行判断

在线等....急......

--楼下的用的函数 是当某值为空 赋给什么值 不符合楼主的要求
--我帮你改下 执行时 先判断全面的条件 就过滤掉了空值 还有‘’ 和null 是不一样的 所以都要过滤
--希望解决了楼主的问题
where t<>'' and t is not nul and t2<>'' and t2 is not null
and t.dataTime=t2.dataTime追问

(关联条件 or (t.dataTime is null or t2.dataTime is null)) 问题这样解决了,不过还是谢谢了

追答

你这样写 括号有什么意义呢? 有没有想过?
如果你这样是解决了问题 那么你描述就有问题

追问

果然还是不行哇....问题是你上面那个写法把空值过滤掉了...我联立查询空值也要查出来...

追答

我有点搞不清楚楼主的需求了 你能重新描述一下吗?
或者把结果截图给我看也可以

追问

时间都有的时候

存在时间没有的时候

追答

--那就不要那样写 用left join 我不知道你哪个表是主表 如果主表不是t 就换个顺序 你这样就不是---过滤空值了 不明白再问我
select 1 from t left join t2 on
t.dataTime=t2.dataTime

参考技术A 使用nvl函数进行空值转换,如:nvl(t.dataTime, sysdate)=nvl(t2.dataTime,sysdate),要不就写个子查询把空值过滤掉追问

nvl(t.dataTime, sysdate)=nvl(t2.dataTime,sysdate) 这样子的话....如果我t.dataTime 不为空,但是t2.dataTime为空,则t和t2数据匹配就完全不对了啊

追答

不太明白你说的,空值本来就应该和具体的值匹配不上啊

追问

(关联条件 or (t.dataTime is null or t2.dataTime is null)) 问题这样解决了,不过还是谢谢了

追答

楼主要的是全外连接吧,full out jion

参考技术B 你可以where后面限定t.dataTime, t2.dataTime 不为空啊

以上是关于使用linq进行查询,结果为空时,是怎么判断的呢?的主要内容,如果未能解决你的问题,请参考以下文章

mybatis中查询结果为空时不同返回类型对应返回值

当其中一种数据类型可以为空而另一种不能为空时,是不是可以使用 linq 进行匿名连接? [复制]

如何在源集合为空时强制 LINQ Sum() 返回 0

记录为空时,Access 2010 查询仍显示结果

关于在SQL中加入IF判断的用法:

在查询SQL语句中为空或不为空怎么写