В SQL не может быть неоднозначности.
В оригинальном Руководстве по стандарту SQL , составленном C.J.Date (издание 1987 г.), =
для присвоения используется только в предложении SET
UPDATE
. Везде, где используется =
, используется для сравнения.
Но в других языках, таких как C / C ++ / C # / Java, =
может использоваться в качестве присваивания, но также возвращает значение. Таким образом, a = b
означает «установить a
равным b
и вернуть a
», тогда как a == b
означает «вернуть true
, если a
и b
равны». (Это приводит к очень распространенной ошибке в программах на C, поскольку if (a = b)
и if (a == b)
являются допустимыми, поскольку результат не обязательно должен быть логическим.)
Некоторые языки, такие как JavaScript / ECMAScript, также вводят ===
в качестве третьего типа сравнения. В этих языках ==
означает «преобразовать в один и тот же тип и сравнить», тогда как ===
означает «вернуть true
, только если они имеют одинаковый тип и одинаковое значение».