mysql 과 postgresql 의 group_concat 함수

mysql 과 postgresql 의 group_concat 함수
를 잘 이용하면, 극도로 정규화된 각 테이블 정보로부터
편하게 하나의 테이블 안에 group값 전체를 표시할 수가 있다.

분리자를 이용하면 좀 더 예쁘게 볼 수

분리자를 이용하면 좀 더 예쁘게 볼 수 있다.
SELECT GROUP_CONCAT(fieldName SEPARATOR '/') FROM tableName

만일 group_concat의 결과가 BLOB으로만

만일 group_concat의 결과가 BLOB으로만 보인다면,
아래와 같이 변경해서 출력하면 된다.

기존 : group_concat( 필드명 )

변경 : group_concat(cast( 필드명 as char) )

참고 -

참고 - http://72.14.235.132/search?q=cache:wwNJ-udNAncJ:miau.s9.xrea.com/blog/i...

PostgreSQL では、集約関数を自分で定義できたりします。
これを作ってしまうと、

SELECT id, SUM(point) FROM Points GROUP BY id

みたいなノリで「カンマで文字列を結合する」集約処理

SELECT id, comma_join(point_name) FROM Points GROUP BY id

みたいなことができちゃいます。

では早速。

CREATE FUNCTION text_comma_join(text, text) RETURNS text AS '

SELECT $1 || '','' || $2

' LANGUAGE SQL;

CREATE FUNCTION skip_initial(text) RETURNS text AS '

SELECT substr($1, 2)

' LANGUAGE SQL;

CREATE AGGREGATE comma_join (

  BASETYPE = text,

  SFUNC = text_comma_join,

  STYPE = text,

  FINALFUNC = skip_initial,

  INITCOND = ''

);

댓글 쓰기

CAPTCHA
스팸방지를 위해 아래에 보이는 영문/숫자를 입력해 주세요.
Image CAPTCHA
Enter the characters shown in the image.