2013-08-05 5 views
0

Ниже заявления не выполняется для ADSКак мы можем получить значения столбцов как разделенные запятой в сервере Advantage Database?

DECLARE @listStr VARCHAR(MAX) 
SELECT @listStr = COALESCE(@listStr+',' ,'') + Name FROM Product 
SELECT @listStr 

Пожалуйста, помогите

+0

Посмотрите http://stackoverflow.com/questions/15375218/how-to-convert-columns-data-in-comma-separated-list –

ответ

1

В общем, предпочтительный способ сделать это, чтобы использовать все функции СУБД обеспечивает. MySQL имеет group_concat(), PostgreSQL имеет array_agg(), Oracle имеет listagg() и т. Д. Но Advantage Server, похоже, не поддерживает такие функции, как эти.

Следующим лучшим способом является создание пользовательской функции. Advantage supports user-defined functions. Here's one implementation; Я его не тестировал.

Другие способы, которые могут или не может быть возможно, являются

  • простирающегося СУБД путем написания пользовательских функций на языке низкого уровня, часто C или C++, и
  • делает конкатенацию в приложении кода вместо сервера.
+0

Привет Майк, спасибо за ответ. Но ссылка на реализацию, которую вы предоставили, такая же, как и определенные пользователем функции. Пожалуйста, дайте мне, если это возможно. –

+1

@DileepPaul: Исправлена ​​ссылка. Извини за это. –