La mayoría de bases de datos SQL siguen los estándares ANSI SQL a un grado, perolista de diferencias entre las bases de datos SQL
La norma es ambigua, dejando algunas áreas abiertas a la interpretación (por ejemplo: cómo las diferentes operaciones con
NULLs
debe ser manejado is ambiguous)Algunos vendedores contradicen la norma absoluta o simplemente carecen de funcionalidad definida por la norma (por ejemplo: MySQL tiene un list of differences entre la norma y su aplicación)
Algunas bases de datos se comportarán de forma diferente dependiendo de cómo estén configuradas, pero la configuración puede modificarse para que se comporten de la misma manera (por ejemplo: Oracle realiza comparaciones de cadenas sensibles a mayúsculas y minúsculas mientras SQL Server las insensibiliza)
hay algunas funciones que no forma parte de la norma, pero es implementado por diferentes RDBMS de todos modos, aunque con diferentes nombres (por ejemplo: de Oracle
LISTAGG
= de MySQLGROUP_CONCAT
)
¿hay un recurso con un amplio lista de peculiaridades y errores a los que prestar atención cuando tratas de escribir algo que se supone que es compatible con múltiples bases de datos?
+1 pregunta valiosa. Una cosa a tener en cuenta es que no solo encontrará problemas de compatibilidad, sino que también deberá considerar probar sus soluciones en los RDBMS más importantes para asegurarse de que no haya un rendimiento oscuro y de que no haya nada aún sin documentar. Al final del día, debe cubrirse y decir qué plataformas admite específicamente al indicar que otras plataformas podrían ser compatibles más adelante. – Seph
De hecho, es una pregunta valiosa que, desafortunadamente, permanece sin respuesta. – FDavidov
Me gusta la referencia rápida OReilly SQL porque me muestra una variedad de sintaxis y diferencias entre varios dialectos. Lamentablemente, este es un objetivo móvil con nuevas funcionalidades y cambios cada vez que salen nuevas versiones. También hay http://sqlfiddle.com/ que le permitirá probar varias versiones diferentes de servidores (oracle, mysql, ...) e incluso versiones de un servidor determinado (mysql 5.5 y 5.6). – argoc