2012-08-31 12 views
5

He estado buscando pero no encuentro nada. ¿Existe una forma compatible con SQL estándar para producir resultados como this TSQL? Me gustaría una única consulta que funcione igual de bien en sqlite, mysql, postgresql o sql server. ¿Es algo así incluso posible?servidor cruzado, SQL estándar para producir una lista delimitada por comas

+1

No creo que haya una sola consulta multiplataforma que pueda ejecutarse en todos esos motores de base de datos (por cierto, puede probarla aquí: http://www.sqlfiddle.com/). Sin embargo, puede encontrar este informativo: http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ – mellamokb

+0

Estoy interesado en esto – codingbiz

+1

Casos de prueba: [ Servidor SQL] (http://www.sqlfiddle.com/#!3/dba5e); [MySQL] (http://www.sqlfiddle.com/#!2/d0e35); [PostGre] (http://www.sqlfiddle.com/#!1/d0e35); [SQLite] (http://www.sqlfiddle.com/#!7/da597) – mellamokb

Respuesta

2

Según entiendo su pregunta, está buscando una forma de base de datos cruzada para agregar valores en una columna en una lista separada por comas. Por lo que yo sé, no hay un agregado estándar para hacer esto (y en PostgreSQL antes de añadir algunos agregados nuevos, estaba escribiendo mis propios agregados para esto).

Lo mejor que podría hacer sería seleccionar la lista y procesarla en su aplicación, pero eso es lo que sucede cuando tiene que escribir código portátil en db's.

El segundo problema que tendrá es que si bien es posible agregar extensiones a algunos de estos DB para gestionar este problema, no es posible en todos ellos.

Así que no, no es posible. Tus opciones son: mantenerte con uno o dos db's que admitan agregados personalizados y ajustar eso, crear una interfaz basada en SP en un db o simplemente seleccionar la lista y manejarla en tu aplicación.

Cuestiones relacionadas