FALSE is a reserved Boolean literal defined by the SQL standard. When a database supports the BOOLEAN data type, the literal evaluates to the numeric value 0 or an internal false flag, depending on implementation. FALSE can appear anywhere an expression is allowed: in SELECT lists, predicates, CASE expressions, CHECK constraints, and default values.Evaluation rules:- Comparisons that resolve to FALSE eliminate rows in WHERE, HAVING, and JOIN ON clauses.- In three-valued logic (TRUE, FALSE, UNKNOWN), FALSE is distinct from NULL/UNKNOWN. A predicate evaluating to UNKNOWN (e.g., column IS NULL) is not considered FALSE.Casting and storage:- In PostgreSQL and MySQL, BOOLEAN columns store FALSE as 0.- SQLite treats FALSE as the integer 0 in numeric affinity columns.Caveats:- SQL Server does not recognize the literal FALSE; use 0 or the BIT data type instead.- Earlier Oracle versions lacked BOOLEAN in SQL (PL/SQL only). Oracle 23c introduces BOOLEAN support with FALSE.- Do not quote the literal ('FALSE'); that turns it into a string, not a Boolean.
SQL TRUE, SQL UNKNOWN, BOOLEAN data type, CASE expression, IS NULL predicate, BIT type (SQL Server)
SQL:1999 (BOOLEAN data type)
Selecting FALSE returns a single Boolean value representing logical false. In most client libraries it appears as 0 or the word "false".
Only if the database implicitly casts. Best practice is to compare Boolean columns to FALSE, not integers.
Use the NOT operator: NOT FALSE evaluates to TRUE.
SQL Server uses the BIT type for Booleans and accepts 0 or 1 instead of the literals FALSE and TRUE.