在我的SQL中,我在lof的地方使用NULLIF(NULLIF(UPPER(T.Column),''),'NULL')
。但问题是它正在将T.Column更新为上限。现在我想使用NULLIF(NULLIF(T.Column,''),'NULL')
。我的申请正在制作中。不确定运行这会影响我的查询吗?
答案 0 :(得分:1)
它会影响您的查询......这取决于您放置所有NULLIF语句的位置。您通常会为DB提供更多工作,但如果此列包含在WHERE语句中,则很可能会阻止优化器在列上使用索引。因此,它可能会对业绩产生负面影响。如果它包含在一个选择语句中,那么它的影响仍然是负面但更少。
就个人而言,它看起来有点凌乱。如果您在整个地方使用它,请考虑创建此表的视图。在视图中创建一个具有此逻辑的列。然后,您的代码可以引用该视图,而无需重复上述功能。你的存储过程代码将更加清洁,乱七八糟的东西!
答案 1 :(得分:1)
如果您确定该字段中的所有值都是大写的,则UPPER
调用是超级的。
请注意,即使该值包含文字'NULL'
,该值也必须为大写,例如'Null'
或'null'
不会转换为null
,除非您在该字段中设置了一个案例介绍归类。