Большинство баз данных SQL в определенной степени соответствуют стандартам ANSI SQL, но
-
Стандарт неоднозначен, оставляя некоторые области открытыми для интерпретации (например: как обрабатываются различные операции с
NULLs
неоднозначно) -
Некоторые производители противоречат стандарту или просто не соответствуют функциональности, определенной стандартом (например: MySQL имеет список различий между стандарт и их реализация)
-
Некоторые базы данных будут вести себя по-разному в зависимости от того, как они настроены, но можно изменить конфигурацию, чтобы они ведут себя одинаково (например: по умолчанию Oracle выполняет сравнения строк по регистру, а SQL Server - insensitve)
-
Существует некоторая функциональность, которая не является частью стандарта, но в любом случае реализована различными RDBMS, хотя и с разными именами (например: Oracle
LISTAGG
= MySQLGROUP_CONCAT
)
Есть ли ресурс с полным списком причуд и gotchas, чтобы обратить внимание на то, когда вы пытаетесь написать что-то, что должно быть совместимо с несколькими базами данных?