![]() |
1
9
取决于数据类型和列的可能值:
诀窍是找到一个值(这里我使用-1),它将 从未 出现在数据中。 另一种方法是:
这可能是一个问题,具体取决于您的特定RDBMS如何处理空值。按照美国国家标准协会的标准,这应该给你想要的,但谁遵守标准无论如何。:) P.S.-我还应该指出,在比较列时使用coalesce函数可能会使索引的使用失效。检查您的查询计划和查询的性能,看看是否有问题。 P.P.S.-我刚注意到OMG小马提到Informix不支持合并。我相信这是一个ANSI标准函数,但是看看我上面说的关于标准的内容… |
![]() |
2
3
我会亲自写出你想出的表达方式,特别是如果桌子预计会变大的话。在函数调用中包装列会损害性能,因为这样引擎就不能在这些列上使用任何索引。当然,在一个小的表中,这可能不是什么问题,但我仍然喜欢以明确的方式进行,以防表最终增长。 |
![]() |
3
1
你能在Informix中尝试类似的方法吗?
|
![]() |
4
0
如果您想确定如何处理空值,则必须使用Informix支持的任何内容来检查空值。除了SE版本不支持Coalesce之外,我还没有找到其他版本,但它确实支持decode和case。
|
![]() |
5
0
对于SQL Server,请使用:
|
![]() |
6
0
问题是
你可以说:
但是,无论哪种方式都需要这样做,这可能是您滥用了空值的迹象,应该考虑更改架构,使用其他非空值来表示这个可比较的条件。
例如,如果你有一个
|
![]() |
7
0
IBMInformixDynamicServer由于各种历史原因(也叫“坏”)对布尔值有一种特殊的看法。修改@astander建议的想法,这个案例表达式“有效”,但我会第一个说“不明显”(见-我在你之前说过!)。设置阶段:
select语句:
此查询的结果是:
问题:
是的,这让我非常痛苦。 |
![]() |
8
0
如果
是为了平等,那为什么不使用:
为了不平等? |
![]() |
Dee J. Doena · 比较两个空可空值 8 年前 |
![]() |
Konrad Viltersten · 如何让EF理解某些列不可为空? 9 年前 |
![]() |
Muhammad Nasir · 空对象设计模式与空对象检查 9 年前 |
![]() |
checketts · 从可空对象创建流的惯用方法 10 年前 |