STRING_AGG 带换行符
STRING_AGG with line break
DROP TABLE IF EXISTS items;
CREATE TABLE items (item varchar(20));
INSERT INTO items VALUES ('apple'),('raspberry');
SELECT STRING_AGG(item, CHAR(13)) AS item_list FROM items;
如何在项目之间换行?
把它放在字符串中:
SELECT STRING_AGG(item, '
') AS item_list
FROM items;
需要注意的是 "end of line" 的定义取决于操作系统。因此,这将在 Unix 上插入一个与 Windows.
不同的值
Here 是一个 db<>fiddle.
如果使用 Management Studio 查询编辑器,结果到网格选项无法实现回车 return。切换到 Results to Text 以正确查看结果集。
https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver15
SELECT STRING_AGG(item, CHAR(13)) AS item_list FROM items;
您的查询在我的环境中运行良好。您需要在管理工作室中启用此设置:
Tools > Options > Query Results > Results to Grid
我不明白为什么,但他们已经在几个 SSMS 版本之前更改了默认行为。
您可以使用 print
函数将所有输出打印为 text
DECLARE @Res NVARCHAR(MAX) = (SELECT STRING_AGG(item, '
') FROM items);
print(@Res)
DROP TABLE IF EXISTS items;
CREATE TABLE items (item varchar(20));
INSERT INTO items VALUES ('apple'),('raspberry');
SELECT STRING_AGG(item, CHAR(13)) AS item_list FROM items;
如何在项目之间换行?
把它放在字符串中:
SELECT STRING_AGG(item, '
') AS item_list
FROM items;
需要注意的是 "end of line" 的定义取决于操作系统。因此,这将在 Unix 上插入一个与 Windows.
不同的值Here 是一个 db<>fiddle.
如果使用 Management Studio 查询编辑器,结果到网格选项无法实现回车 return。切换到 Results to Text 以正确查看结果集。
https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver15
SELECT STRING_AGG(item, CHAR(13)) AS item_list FROM items;
您的查询在我的环境中运行良好。您需要在管理工作室中启用此设置:
Tools > Options > Query Results > Results to Grid
我不明白为什么,但他们已经在几个 SSMS 版本之前更改了默认行为。
您可以使用 print
函数将所有输出打印为 text
DECLARE @Res NVARCHAR(MAX) = (SELECT STRING_AGG(item, '
') FROM items);
print(@Res)