Получить только данные, когда я выполняю запрос в PostgreSQL - PullRequest
0 голосов
/ 22 марта 2019

Когда я выполняю свой запрос в PostgreSQL:

SELECT names 
from user;

, я получаю следующий результат:

      names
--------------
Anna
Julius
Perico

(3 rows)

Я хочу получить следующий вывод:

Anna Julius Perico

Мне это нужно, потому что это скрипт bash, и мне нужно сохранить его в переменной.

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Функция string_agg может быть тем, что вы хотите здесь:

select string_agg(names, ' ' order by names) from user;

Я сказал "может", потому что это предполагает, что сам столбец names может быть использован для генерации порядка в выводе одной строки. Если вы хотите другой заказ, вам нужен еще один столбец.

0 голосов
/ 22 марта 2019

Если вы хотите использовать его в сценарии оболочки, это будет лучшим способом:

myvar=`psql --no-align --quiet --tuples-only --command='SELECT name FROM users'`

Нет необходимости располагать их в одной строке;оболочка также принимает перевод строки в качестве разделителя полей:

for n in $myvar; do
    echo "name: $n"
done

name: Anna
name: Julius
name: Perico
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...