Where子句: 我應該在Proc中對值進行測試,但如果其中至少有一個值爲null,則結果應爲TRUE 。只有在BOTH NOT NULL(它是表中ID列的整數值)時,比較結果纔是FALSE。只有當兩個值都不爲空且不匹配時,Eval纔會將兩個值與FALSE進行比較
現在我有這個: ...
and nvl(nvl(b.account_id, account_id_), 0) = nvl(nvl(account_id_, b.account_id), 0)
b.account__id
- 在表(整數)列,account_id_
- 帕拉姆在同類型的PROC。
它的工作原理,但恕我直言,它看起來很奇怪,瞭解什麼是評估的目的。 所以我試圖讓它更易讀,但沒有真正好的結果。
我試過COALESCE - 但它需要檢查null,如果兩者都是空值。 LNNVL是一個不錯的選擇,但如果它們同等,它會給出FALSE,但在這種情況下我需要True。
有什麼好的想法?
我喜歡COALESCE變體,'0' - 沒關係。 我不喜歡第二個,因爲2個evals - 它也很複雜。 感謝您指出COALSCE與零 - 我錯過了這一點。 – zmische 2009-11-27 06:49:05