gpt4 book ai didi

sql - SQL Server 2016中的String_agg

转载 作者:行者123 更新时间:2023-12-02 21:16:07 25 4
gpt4 key购买 nike

这是我在 sql server 2016 中的代码

insert into @entdef_queries(entitydefid,squery)
select A.entitydefid
,
(
select String_agg(cols,ioperator)
from
(
Select case when lower(b.metricdatatype) like 'string%' or lower(b.metricdatatype) like '%char%' or lower(b.metricdatatype) ='bit' or lower(b.metricdatatype) like 'date%' then
' lower("'+ b.metricname +'") ' + b.metriccondition +' '''+ b.value1 +''' '
when lower(b.metricdatatype) not like 'string%' and lower(b.metricdatatype) like '%char%' and lower(b.metricdatatype) !='bit' and lower(b.metricdatatype) not like 'date%' then
case when lower(b.metriccondition)='between' then ' "'+ b.metricname +'"' + b.metriccondition +' '+ b.value1 +' and ' + b.value2 + ' '
else ' "'+ b.metricname +'"' + b.metriccondition +' '+ b.value1 + ' ' end
end cols
, ( select distinct operators from @entdef_data C where A.entitydefid=C.entitydefid) ioperator
from
@entdef_data B
where A.entitydefid=b.entitydefid
)inp
)
from
@entdef_data A
group by A.entitydefid;

当我尝试执行以下代码时..它抛出错误 String_agg 不是内置函数。

最佳答案

正如 Gordon Linoff 提到的,此功能在 SQL Server 2016 中不可用。

要使用for xml方法。

<小时/>

有一个稍微faster启动 SQL Server 2005 时可以使用的替代方案:SQLCLR GROUP_CONCAT。其用法与 native STRING_AGG 非常相似。但由于它是自定义的 CLR 聚合,因此引入了自身的风险:启用 CLR、可能的内存泄漏等。

文档: https://orlando-colamatteo.github.io/ms-sql-server-group-concat-sqlclr/

关于sql - SQL Server 2016中的String_agg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54553172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com