跨服务器,标准SQL生成逗号分隔列表

时间:2012-08-31 22:54:58

标签: mysql sql sql-server sqlite postgresql

我一直在寻找但找不到任何东西。是否有符合SQL标准的方法来生成像this TSQL这样的输出?我想在sqlite,mysql,postgresql或sql server上运行一个单独的查询。这样的事情甚至可能吗?

1 个答案:

答案 0 :(得分:2)

正如我理解您的问题,您正在寻找一种跨数据库方式将列中的值聚合为逗号分隔列表。据我所知,没有标准聚合来做到这一点(在添加一些新聚合之前的PostgreSQL上,我正在为此编写自己的聚合)。

你能做的最好的事情就是选择列表并在你的应用程序中处理它,但是当你必须在db上编写可移植的代码时会发生这种情况。

您将遇到的第二个问题是,尽管可以为这些数据库中的某些数据库添加扩展来管理此问题,但并非所有数据库都可以使用。

所以不,不可能。您的选择是:坚持使用一个或两个支持自定义聚合的数据库,并在其中填充,在一个数据库上构建基于SP的接口,或者只选择列表并在应用程序中处理它。