Sorting, grouping and compound SELECT statements

Updated: April 19, 2023

When query results are sorted by an ORDER BY clause, values with storage class NULL come first, followed by INTEGER and REAL values interspersed in numeric order, followed by TEXT values in collating sequence order, and finally, BLOB values in memcmp() order. No storage class conversions occur before the sort.

When grouping values with the GROUP BY clause, values with different storage classes are considered distinct, except for INTEGER and REAL values, which are considered equal if they are numerically equal. No affinities are applied to any values as the result of a GROUP BY clause.

The compound SELECT operators UNION, INTERSECT, and EXCEPT perform implicit comparisons between values. No affinity is applied to the operands in the comparisons associated with any of these three operators—the values are compared as is. For more details, see Compound SELECT statements.