{"Entry":{"collection":"func","key":"string-agg","name":"string_agg","aliases":[],"metadata":{"changed_in":["9.2","17"],"changes":[{"descriptions_changed":false,"doc_overhaul":false,"from":"8.4","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"added","to":"9.0"},{"descriptions_changed":false,"doc_overhaul":false,"from":"9.1","group_changed":null,"signatures":{"added":["string_agg ( expression, delimiter ) → same as argument types"],"removed":["string_agg ( expression, delimiter ) → text"]},"status":"changed","to":"9.2"},{"descriptions_changed":true,"doc_overhaul":false,"from":"9.3","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"changed","to":"9.4"},{"descriptions_changed":false,"doc_overhaul":true,"from":"12","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"changed","to":"13"},{"descriptions_changed":false,"doc_overhaul":false,"from":"16","group_changed":null,"signatures":{"added":["string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea"],"removed":["string_agg ( value bytea, delimiter bytea ) → bytea"]},"status":"changed","to":"17"}],"content_hash":"b7d0050d4f80074f3922c41d3e75c97ceac84d9ac7983b3908fe800afec5e486","derived_content_hash":"dd5d285e26edb38da1afd36babe8c2e886e76584b26d0663a4941ae05bd585e0","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:6f313671df965c2e3f3c409ad4762d94851e8a78c0a71c9caca4c0b972ec28ef","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"first_version":"9.0","group":"aggregate","group_label":"Aggregate Functions","groups":["aggregate"],"imported_at":"2026-09-27T17:57:28.973368+08:00","last_version":"20","name":"string_agg","name_key":"string_agg","position":21051,"present_in":["9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"wiki-repair-20261023:364048b2b4acf88cf7ad9db33f85e97e479d95e0bab312a798d3b4d0124bc86b","receipt_sha256":"916175c97398cbd022d5620468572828cae7934fa71c34c071af6e4314caa417","repair":"wiki-repair-20261023"},"signature":"string_agg ( value text, delimiter text ) → text","signature_count":2,"slug":"string-agg","source_rev":"wiki-repair-20261023:6f313671df965c2e3f3c409ad4762d94851e8a78c0a71c9caca4c0b972ec28ef","summary":"Concatenates the non-null input values into a string.","summary_zh":""}},"Definition":{"Collection":"func","Key":"string-agg","SourceDatabase":"center","Version":"18","SourceTable":"func","SourceKey":"string-agg","SourceRevision":"wiki-repair-20261023:6f313671df965c2e3f3c409ad4762d94851e8a78c0a71c9caca4c0b972ec28ef","Facts":{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","description_zh":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 delimiter（如果它不为 NULL）。","description_zh_html":"将非 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e）。","doc":{"anchor":"FUNCTIONS-AGGREGATE-TABLE","file":"functions-aggregate.html","sha256":"31d3dcd36ef353484b4b3535f9f0d1cc239c3910146257fe5178f99b90b501e2","slug":"18"},"documentation_revision":{"inputs":[{"file":"functions-aggregate.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"31d3dcd36ef353484b4b3535f9f0d1cc239c3910146257fe5178f99b90b501e2","version":"18.7"},{"file":"functions-aggregate.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"0bf7506d27b71666fc74840a21a8f77c8a92735174f1d05033865961722e457c","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"group":"aggregate","group_label":"聚合函数","lang":"en","layout":"table-new","pages":["functions-aggregate.html"],"prose_only":false,"signatures":[{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","description_zh":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 delimiter（如果它不为 NULL）。","description_zh_html":"将非 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e）。","examples":[],"html":"\u003ccode class=\"function\"\u003estring_agg\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e ) → \u003ccode class=\"returnvalue\"\u003etext\u003c/code\u003e","returns":"text","text":"string_agg ( value text, delimiter text ) → text","zh_from":"same-version-manual"},{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","description_zh":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 delimiter（如果它不为 NULL）。","description_zh_html":"将非 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e）。","examples":[],"html":"\u003ccode class=\"function\"\u003estring_agg\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e \u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e \u003ccode class=\"literal\"\u003einput_sort_columns\u003c/code\u003e ) → \u003ccode class=\"returnvalue\"\u003ebytea\u003c/code\u003e","returns":"bytea","text":"string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea","zh_from":"same-version-manual"}],"translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/functions-aggregate.html","sha256":"68da7af09e2749a855188bbbff99ae036fc7eece4e19b8e048baffd28aa3ca59"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"FUNCTIONS-AGGREGATE-TABLE","file":"functions-aggregate.html","sha256":"31d3dcd36ef353484b4b3535f9f0d1cc239c3910146257fe5178f99b90b501e2","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"func","Key":"string-agg","SourceDatabase":"center","Version":"18","Locale":"en","Title":"string_agg","Summary":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","BodyHTML":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it\u0026#39;s not null).","SourceRevision":"wiki-repair-20261023:6f313671df965c2e3f3c409ad4762d94851e8a78c0a71c9caca4c0b972ec28ef","ContentHash":"0e8efc8355596ced679f28e50b03afc168542b7dbc8974814db0d165773cdbe0","Payload":{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","signatures":[{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","description_zh":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 delimiter（如果它不为 NULL）。","description_zh_html":"将非 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e）。","examples":[],"html":"\u003ccode class=\"function\"\u003estring_agg\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e ) → \u003ccode class=\"returnvalue\"\u003etext\u003c/code\u003e","returns":"text","text":"string_agg ( value text, delimiter text ) → text","zh_from":"same-version-manual"},{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","description_zh":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 delimiter（如果它不为 NULL）。","description_zh_html":"将非 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e）。","examples":[],"html":"\u003ccode class=\"function\"\u003estring_agg\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e \u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e \u003ccode class=\"literal\"\u003einput_sort_columns\u003c/code\u003e ) → \u003ccode class=\"returnvalue\"\u003ebytea\u003c/code\u003e","returns":"bytea","text":"string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea","zh_from":"same-version-manual"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":[{"Version":"18","Ordinal":0,"Hash":"88f4652057cd2e0015c2c08cd6800de7076550ca9968f03fe4269e14345cc7d3","Text":"string_agg ( value text, delimiter text ) → text","Returns":"text","Payload":{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","description_zh":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 delimiter（如果它不为 NULL）。","description_zh_html":"将非 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e）。","examples":[],"html":"\u003ccode class=\"function\"\u003estring_agg\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e ) → \u003ccode class=\"returnvalue\"\u003etext\u003c/code\u003e","returns":"text","text":"string_agg ( value text, delimiter text ) → text","zh_from":"same-version-manual"}},{"Version":"18","Ordinal":1,"Hash":"bb7c72954e6d8bfe0d05f2a7dfdba1a53243c15f86b46f319921f159292b3a9d","Text":"string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea","Returns":"bytea","Payload":{"description":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding delimiter (if it's not null).","description_html":"Concatenates the non-null input values into a string. Each value after the first is preceded by the corresponding \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e (if it's not null).","description_zh":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 delimiter（如果它不为 NULL）。","description_zh_html":"将非 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的 \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e）。","examples":[],"html":"\u003ccode class=\"function\"\u003estring_agg\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e \u003ccode class=\"literal\"\u003eORDER BY\u003c/code\u003e \u003ccode class=\"literal\"\u003einput_sort_columns\u003c/code\u003e ) → \u003ccode class=\"returnvalue\"\u003ebytea\u003c/code\u003e","returns":"bytea","text":"string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea","zh_from":"same-version-manual"}}],"Spellings":null,"SQLState":null,"Evidence":null}
