[英]Concatenate string in statement that assigns a variable in PostgreSQL
[英]Can you concatenate a string value multiple times in a PostgreSql SELECT statement?
在 Sql Server 中,您可以运行以下查询以将多行中的值组合成单个字符串变量。
DECLARE @x NVARCHAR(MAX) = N'';
SELECT TOP 5 @x = @x + name + ', '
FROM sys.objects
SELECT @x
这导致
"sysrscols, sysrowsets, sysclones, sysallocunits, sysfiles1,"
有没有办法在 PostgreSql 中做类似的事情? 我尝试创建一个 PostgreSql 函数,它执行 SELECT INTO stringVariable 但这只会产生一行的值。
不完全是。 您在 SQL Server 中拥有的代码实际上并不能保证有效。 在 Postgres 中,您将使用:
select string_agg(name, ', ')
from sys.objects;
如果您有一个sys.objects
表。
请注意,在 SQL Server 中,您应该做同样的事情:
select string_agg(name, ', ')
from sys.objects;
请注意:您对变量的使用与文档直接矛盾:
如果 SELECT 语句返回多行并且变量引用了非标量表达式,则该变量将设置为结果集最后一行中表达式的返回值。
也就是说,我知道你在做什么在实践中确实有效。 但我建议使用string_agg()
或在早期版本中使用 XML 进行字符串连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.