programing

쉼표로 구분된 목록으로 결과를 반환하는 PostgreSQL 쿼리

jooyons 2023. 7. 19. 21:20
반응형

쉼표로 구분된 목록으로 결과를 반환하는 PostgreSQL 쿼리

예를 들어, 당신이SELECT id from table여러 결과를 반환하는 쿼리(실제 사례는 복잡한 쿼리).

문제는 모든 것을 얻는 방법입니다.id쉼표로 구분하여 한 줄로 돌아옵니까?

SELECT string_agg(id::text, ',') FROM table

Postgre 필요SQL 9.0은 문제가 되지 않습니다.

array() 및 array_to_string() 함수를 사용하여 쿼리를 수행할 수 있습니다.와 함께SELECT array( SELECT id FROM table );다음과 같은 결과가 표시됩니다. {1, 2, 3, 4, 5, 6}

그런 다음 {}개의 기호를 제거하려면 array_to_string() 함수를 사용하고 쉼표를 구분 기호로 사용하면 됩니다.SELECT array_to_string( array( SELECT id FROM table ), ',' )다음과 같은 결과를 얻을 수 있습니다: 1,2,3,4,5,6

psql을 사용하여 모든 SQL 쿼리에서 CSV를 생성할 수 있습니다.

$ psql
> \o myfile.csv
> \f ','  
> \a
> SELECT col1 AS column1, col2 AS column2 ... FROM ...

결과 myfile.csv는 SQL resultset 열 이름을 CSV 열 헤더로 하고 쿼리 튜플을 CSV 행으로 합니다.

h/t http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv

array_to_string() & array() 함수를 사용합니다.

select array_to_string(array(select column_name from table_name where id=5), ', ');

아래 쿼리를 사용하면 작동하고 정확한 결과를 얻을 수 있습니다.

SELECT array_to_string(array_agg(id), ',') FROM table

출력: {1,2,3,4,5}

SELECT array_agg(id, ',') FROM table

{1,2,3,4}

Postgres 11을 사용하고 있으며 EntityFramework에서 정수 배열로 가져옵니다.

언급URL : https://stackoverflow.com/questions/11899024/postgresql-query-to-return-results-as-a-comma-separated-list

반응형