我有一个当前格式为myVar
的圆柱。这应该只是一个实际的数字。我可以添加什么样的约束来阻止var result = query<Items>()
.Where(x => x.Id == someId)
.SelectMany(x => x.SubItems)
.GroupBy(x => x.SubItemId)
.Select(x => new ItemModel
{
SubItemId = x.Key,
SpecialItemCount = x.Where(y => y.IsSpecial == false).Count(),
})
.ToList()...
成为NaN?
答案 0 :(得分:6)
通常你需要一个特殊的函数来检测一个值是否为NaN(类似于对SQL的is null
进行is not null
和null
测试)但是在PostgreSQL中NaN = NaN
is true:
[...]为了允许在基于树的索引中对数值进行排序和使用,PostgreSQL将
NaN
值视为相等,并且大于所有非NaN
值。< / p>
因此,直接比较的简单CHECK约束就足够了:
check (myvar <> 'NaN')
如果您愿意,可以添加演员表,但没有必要:
check (myvar <> 'NaN'::real)
check (myvar <> 'NaN'::numeric)