Стандартный оператор SQL - это <>
, поэтому рекомендуется придерживаться его.
Причина различий в поведении объясняется в документации :
Существует несколько ограничений на выбор имени [оператора]:
Имя оператора из нескольких символов не может заканчиваться +
или -
, если только имя также содержит хотя бы один из следующих символов:
~! @ #% ^ & | `?
Например, @-
- это разрешенное имя оператора, а *-
- нет. Это ограничение позволяет PostgreSQL анализировать SQL -совместимые команды без пробелов между токенами.
Теперь, поскольку <>
не содержит ни одного из этих символов, PostgreSQL знает, что <>-
не может быть именем оператора, и нет никакой двусмысленности в разборе.