{"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","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"],"signature":"string_agg ( value text, delimiter text ) → text","signature_count":2,"slug":"string-agg","source_rev":"b7bd9cda","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":"b7bd9cda","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":"","description_zh_html":"","doc":{"anchor":"FUNCTIONS-AGGREGATE-TABLE","file":"functions-aggregate.html","slug":"18"},"group":"aggregate","group_label":"Aggregate Functions","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":"","description_zh_html":"","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":""},{"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":"","description_zh_html":"","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":""}],"zh_from":""},"ManualEvidence":{"doc":{"anchor":"FUNCTIONS-AGGREGATE-TABLE","file":"functions-aggregate.html","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"func","Key":"string-agg","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"string_agg","Summary":"将非 NULL 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的delimiter（如果它不为 NULL）。","BodyHTML":"将非 \u003ccode\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的\u003cem\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode\u003eNULL\u003c/code\u003e）。\u003cpre\u003estring_agg ( value text, delimiter text ) → text\u003c/pre\u003e将非 \u003ccode\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的\u003cem\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode\u003eNULL\u003c/code\u003e）。\u003cpre\u003estring_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea\u003c/pre\u003e将非 \u003ccode\u003eNULL\u003c/code\u003e 输入值连接成一个字符串。在第一个值之后，每个值前面都会放置相应的\u003cem\u003e\u003ccode\u003edelimiter\u003c/code\u003e\u003c/em\u003e（如果它不为 \u003ccode\u003eNULL\u003c/code\u003e）。","SourceRevision":"ca936764","ContentHash":"2e1ead43e9205a08587714716a5a50e0bd45b22c8d65ca9fb1ae81dd0a2e7fe3","Payload":{"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）。","signatures":[{"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）。","returns":"text","text":"string_agg ( value text, delimiter text ) → text","zh_from":"doc"},{"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）。","returns":"bytea","text":"string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea","zh_from":"doc"}],"zh_from":"doc"}},"RequestedLocale":"zh-Hans","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":"","description_zh_html":"","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":""}},{"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":"","description_zh_html":"","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":""}}],"Spellings":null,"SQLState":null,"Evidence":null}
