Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL中字符串与数组的区别?_Sql_Postgresql_String Aggregation - Fatal编程技术网

PostgreSQL中字符串与数组的区别?

PostgreSQL中字符串与数组的区别?,sql,postgresql,string-aggregation,Sql,Postgresql,String Aggregation,我认为当一个是返回字符串类型,另一个是返回数组类型时,string\u aggvsarray\u agg几乎是相同的。他们之间还有什么区别吗 我更喜欢哪个?第一个还是第二个 array_agg(tag_name, ',') as Tag 或 或 有人能给我解释一下吗?1.数组_agg 2。字符串_agg 3。array_to_string您的第一个表达式起源于Postgres没有string_agg()的时代,如果您只是想要字符串(文本)值,就不应该使用它 如果您想连接字符串值,使用strin

我认为当一个是返回字符串类型,另一个是返回数组类型时,
string\u agg
vs
array\u agg
几乎是相同的。他们之间还有什么区别吗

我更喜欢哪个?第一个还是第二个

array_agg(tag_name, ',') as Tag


有人能给我解释一下吗?1.数组_agg 2。字符串_agg 3。array_to_string

您的第一个表达式起源于Postgres没有
string_agg()
的时代,如果您只是想要字符串(文本)值,就不应该使用它

如果您想连接字符串值,使用
string\u agg(tag\u name,,)
是现代Postgres版本的首选方法



当您想要字符串值时,可以使用
string\u agg()
;当您想要使用数组时,可以使用
array\u agg()

您的第一个表达式源于一个时代,Postgres没有
string\u agg()
,如果您仅仅想要字符串(文本)值,就不应该使用它

如果您想连接字符串值,使用
string\u agg(tag\u name,,)
是现代Postgres版本的首选方法



需要字符串值时使用
string\u agg()
,需要使用数组时使用
array\u agg()

在编辑后的问题上,第一个问题会抛出一个错误,因此您不希望这样


第二个和第三个做同样的事情,但是第三个速度非常慢并且占用大量内存。

在你编辑后的问题上,第一个会抛出一个错误,所以你不希望这样


第二个和第三个做同样的事情,但是第三个速度慢而且占用内存。

对不起,我编辑了这个问题。请再看一次。对不起,我编辑了这个问题。请再看一看。
string_agg(tag_name, ',') as Tag
array_to_string(array_agg(tag_name), ',') as Tag