2012-08-31 15 views
5

Szukałem, ale nie mogę znaleźć niczego. Czy istnieje zgodny ze standardem SQL sposób wytwarzania danych wyjściowych, takich jak this TSQL? Chciałbym jedno zapytanie, które działałoby równie dobrze na serwerze sqlite, mysql, postgresql lub sql. Czy to możliwe?Serwer krzyżowy, standardowy SQL do tworzenia listy rozdzielanej przecinkami

+1

Nie wierzę, że istnieje wieloplatformowe pojedyncze zapytanie, które można uruchomić we wszystkich tych silnikach baz danych (można przetestować go tutaj: http://www.sqlfiddle.com/). Może się jednak okazać, że ta informacja: http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ – mellamokb

+0

Jestem zainteresowany tym – codingbiz

+1

Przypadkami testowymi: [ SQL Server] (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

Odpowiedz

2

Jak rozumiem twoje pytanie, szukasz sposobu na połączenie danych z różnych baz danych w kolumnie na liście rozdzielanej przecinkami. O ile mi wiadomo, nie ma standardowego agregatu do tego (a na PostgreSQL przed dodaniem nowych agregatów, pisałem własne agregacje).

Najlepsze, co można zrobić, to wybrać listę i przetworzyć ją w aplikacji, ale tak się dzieje, gdy trzeba pisać kod przenośny w całej bazie danych.

Drugi problem, jaki będziesz mieć, to że możliwe jest dodawanie rozszerzeń do niektórych z tych baz w celu zarządzania tym problemem, nie jest możliwe na wszystkich z nich.

Więc nie, niemożliwe. Do wyboru: trzymaj jedną lub dwie bazy danych, które obsługują niestandardowe agregaty i podpisz je, zbuduj interfejs SP na jednej bazie lub po prostu wybierz listę i obsłuż ją w swojej aplikacji.

Powiązane problemy