{"Entry":{"collection":"operator","key":"op-7c7c-jsonb-jsonb","name":"||(jsonb,jsonb)","aliases":["||","||(jsonb,jsonb)"],"metadata":{"aliases":["||","||(jsonb,jsonb)"],"category":"JSON","content_hash":"68a059c3141e9faf4ea3f82b303d538c82e97d22aa02aa50f47b66168ae6a88e","derived_content_hash":"f053ec0a0a5584a9f1c60a2850977020d89a762555c59fcc220f4db61c13bc4e","imported_at":"2026-09-30T00:40:43.793073+08:00","name":"||(jsonb,jsonb)","name_zh":"","slug":"op-7c7c-jsonb-jsonb","summary":"concatenate"}},"Definition":{"Collection":"operator","Key":"op-7c7c-jsonb-jsonb","SourceDatabase":"center","Version":"18","SourceTable":"pg_operator_entry","SourceKey":"op-7c7c-jsonb-jsonb","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","Facts":{"aliases":["||","||(jsonb,jsonb)"],"comparison_data":{"memberships":[],"operator":{"commutator":"","function":"jsonb_concat(jsonb,jsonb)","hash_join":"f","kind":"b","left_type":"jsonb","merge_join":"f","negator":"","result_type":"jsonb","right_type":"jsonb","symbol":"||"}},"comparison_hash":"bbd6d29974ff813ffc705406cfc40ca83f346f7e5b8641bb814cf861a25a7b8c","description":["concatenate"],"description_zh":"连接。","description_zh_html":"\u003cp\u003e连接。\u003c/p\u003e\u003cdl\u003e\u003cdt\u003e种类\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003eb\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e符号\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e||\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e实现函数\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003ejsonb_concat(jsonb,jsonb)\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e可用于哈希连接\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e左操作数类型\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003ejsonb\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e可用于归并连接\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e右操作数类型\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003ejsonb\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e结果类型\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003ejsonb\u003c/code\u003e\u003c/dd\u003e\u003c/dl\u003e\u003ch3\u003e同版本中文手册节选\u003c/h3\u003e\u003cp class=\"title\"\u003e\u003cstrong\u003e表 9.48. 附加的 \u003ccode class=\"type\"\u003ejsonb\u003c/code\u003e 操作符\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003ca href=\"/zh/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE\"\u003e查看完整中文手册与上下文\u003c/a\u003e。\u003c/p\u003e\u003cp\u003e本页开头的中文说明为 PG.CENTER 对源码说明的翻译；手册节选保留对应版本中文文档原文。源码信息及手册示例不代表重新进行过运行测试。\u003c/p\u003e","facts":[{"label":"Left operand","value":"jsonb"},{"label":"Right operand","value":"jsonb"},{"label":"Result type","value":"jsonb"},{"label":"Implementing function","value":"jsonb_concat(jsonb,jsonb)"},{"label":"Operator kind","value":"Binary"},{"label":"Hash join candidate","value":"no"},{"label":"Merge join candidate","value":"no"}],"facts_zh":[{"label":"左操作数","value":"jsonb"},{"label":"右操作数","value":"jsonb"},{"label":"返回类型","value":"jsonb"},{"label":"实现函数","value":"jsonb_concat(jsonb,jsonb)"},{"label":"操作符种类","value":"Binary"},{"label":"可用于哈希连接","value":"否"},{"label":"可用于归并连接","value":"否"}],"manual_semantics":"Exact operand/result signature matched","memberships":[],"operator":{"commutator":"","function":"jsonb_concat(jsonb,jsonb)","hash_join":"f","kind":"b","left_type":"jsonb","merge_join":"f","negator":"","result_type":"jsonb","right_type":"jsonb","symbol":"||"},"related":[{"label":"jsonb data type","url":"/wiki/type/jsonb/?v=18"}],"release":{"catalog_fingerprint":"deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6","channel":"stable","label":"18.6","major":"18","manual_fingerprint":"fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc","ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sections":[{"paragraphs":["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.","'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb → [\"a\", \"b\", \"a\", \"d\"]","'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb → {\"a\": \"b\", \"c\": \"d\"}","'[1, 2]'::jsonb || '3'::jsonb → [1, 2, 3]","'{\"a\": \"b\"}'::jsonb || '42'::jsonb → [{\"a\": \"b\"}, 42]","To append an array to another array as a single entry, wrap it in an additional layer of array, for example:","'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) → [1, 2, [3, 4]]"],"title":"English manual definition"},{"paragraphs":["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."],"title":"Catalog interpretation"}],"sections_zh":[{"paragraphs":["连接两个 jsonb 值。连接两个数组将生成一个包含每个输入的所有元素的数组。连接两个对象将生成一个包含它们键的并集的对象，当存在重复的键时取第二个对象的值。所有其他情况都通过将非数组输入转换为单元素数组来处理，然后按照两个数组的方式进行处理。不递归操作：只有顶级数组或对象结构会被合并。","'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb → [\"a\", \"b\", \"a\", \"d\"]","'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb → {\"a\": \"b\", \"c\": \"d\"}","'[1, 2]'::jsonb || '3'::jsonb → [1, 2, 3]","'{\"a\": \"b\"}'::jsonb || '42'::jsonb → [{\"a\": \"b\"}, 42]","要将一个数组作为单个元素追加到另一个数组中，请先在它外面再包装一层数组，例如：","'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) → [1, 2, [3, 4]]"],"title":"英文手册定义"},{"paragraphs":["目录 pg_operator 存储关于操作符的信息。详见 CREATE OPERATOR 和 第 36.14 节 。"],"title":"目录记录解读"}],"signature":"||(jsonb,jsonb) → jsonb","source_oid":"3284","sources":[{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},{"label":"PostgreSQL 18 English manual: catalog-pg-operator.html","path":"catalog-pg-operator.html","sha256":"e0b1817914e5e8f9037955cd41e9a43584e9227fcc115784898ecdd9a6c0ecd6","url":"/docs/18/catalog-pg-operator.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amop.html","path":"catalog-pg-amop.html","sha256":"e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1","url":"/docs/18/catalog-pg-amop.html"},{"label":"PostgreSQL 18 English manual: functions-json.html","path":"functions-json.html","sha256":"5129ad5ed908a15ce4b8a7183a9676878f9acde4d474b28ad476d0c980b73897","url":"/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE"}],"tables":[],"tables_zh":[],"zh_from":{"authored_translation":"authored-translation-of-source-description","body_sha256":"c9fc8f328ff361fe936f1c6a88304c58b248feceae04ace00ca15e8ba431c0d0","kind":"same-version-chinese-manual-with-authored-translation-of-source-description","manual":{"anchor":"FUNCTIONS-JSONB-OP-TABLE","build_id":107,"extraction":"concept-introduction","fragment_sha256":"ae5c916e66c770428b3f0f1073bf57e0bd43b9b4384e2d8648239e715186ea53","locale":"zh-Hans","page_key":"functions-json.html","source_hash":"a412feb14a229f1d9f14fa2d7735255aa297d5eb8f2971d744d9dfee659c7cca","source_revision":"unknown:rendered-translation-baseline","translated_from_revision":null,"translation_revision":"git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b","url":"/zh/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE","version":"18"},"runtime_rerun":false,"source_facts_revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}},"ManualEvidence":{"release":{"catalog_fingerprint":"deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6","channel":"stable","label":"18.6","major":"18","manual_fingerprint":"fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc","ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sources":[{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},{"label":"PostgreSQL 18 English manual: catalog-pg-operator.html","path":"catalog-pg-operator.html","sha256":"e0b1817914e5e8f9037955cd41e9a43584e9227fcc115784898ecdd9a6c0ecd6","url":"/docs/18/catalog-pg-operator.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amop.html","path":"catalog-pg-amop.html","sha256":"e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1","url":"/docs/18/catalog-pg-amop.html"},{"label":"PostgreSQL 18 English manual: functions-json.html","path":"functions-json.html","sha256":"5129ad5ed908a15ce4b8a7183a9676878f9acde4d474b28ad476d0c980b73897","url":"/docs/18/functions-json.html#FUNCTIONS-JSONB-OP-TABLE"}]},"MeasuredEvidence":{}},"Text":{"Collection":"operator","Key":"op-7c7c-jsonb-jsonb","SourceDatabase":"center","Version":"18","Locale":"en","Title":"||(jsonb,jsonb)","Summary":"concatenate","BodyHTML":"\u003cp\u003econcatenate\u003c/p\u003e","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","ContentHash":"0e332a0d5e598558f4622576a63d8435784fed3573e2673bd09810e3d89cf704","Payload":{"description":["concatenate"],"related":[{"label":"jsonb data type","url":"/wiki/type/jsonb/?v=18"}],"sections":[{"paragraphs":["Concatenates two jsonb values. Concatenating two arrays generates an array containing all the elements of each input. Concatenating two objects generates an object containing the union of their keys, taking the second object's value when there are duplicate keys. All other cases are treated by converting a non-array input into a single-element array, and then proceeding as for two arrays. Does not operate recursively: only the top-level array or object structure is merged.","'[\"a\", \"b\"]'::jsonb || '[\"a\", \"d\"]'::jsonb → [\"a\", \"b\", \"a\", \"d\"]","'{\"a\": \"b\"}'::jsonb || '{\"c\": \"d\"}'::jsonb → {\"a\": \"b\", \"c\": \"d\"}","'[1, 2]'::jsonb || '3'::jsonb → [1, 2, 3]","'{\"a\": \"b\"}'::jsonb || '42'::jsonb → [{\"a\": \"b\"}, 42]","To append an array to another array as a single entry, wrap it in an additional layer of array, for example:","'[1, 2]'::jsonb || jsonb_build_array('[3, 4]'::jsonb) → [1, 2, [3, 4]]"],"title":"English manual definition"},{"paragraphs":["The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 36.14 for more information."],"title":"Catalog interpretation"}],"tables":[]}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
