Сравнение нулей в Oracle SQL - PullRequest
6 голосов
/ 27 июня 2011

Есть ли лучший способ сравнения, если два значения равны, если они могут быть нулями, отличными от следующих?

a = b or (a is null and b is null)

Ответы [ 3 ]

5 голосов
/ 27 июня 2011

Вы можете:

a=b or coalesce(a,b) is null

Вы также можете использовать nvl, но это устаревшая функция, и coalesce быстрее, так как останавливается на первом ненулевом

4 голосов
/ 27 июня 2011

Вы можете использовать DECODE(A,B,1) = 1

ДЕКОД нерегулярен при лечении NULL.

Однако я думаю, что намерение неясно и предпочитаю ответ vol7ron. Ясность по поводу минимизации ввода!

0 голосов
/ 27 июня 2011

Вы можете обернуть его с помощью nvl и установить для него значение, не ожидаемое в вашем наборе:

NVL(a,0) = NVL(b,0)
...