标签: string-aggregation

如何连接字符串?

我使用的是Oracle 10g并具有以下表结构:id,paragraph

我想按ID分组并连接段落.每个段落可能有1500个字符或更多.

当我尝试wm_concat函数时,它会抱怨字符串缓冲区太小.我实际上在Oracle的网站上尝试过很多例子,但是它们都会因字符串缓冲区太小而失败.

select id, wm_concat(paragraph) from paragraphs group by id
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

sql oracle string-aggregation

5
推荐指数
1
解决办法
3241
查看次数

Oracle用逗号连接列

可能重复:
如何将多行组合到Oracle中以逗号分隔的列表中?

有人可以告诉我如何实现以下目标吗?

表:

efforts_id        cycle_name      release_name 
123               quarter         march 
123               half            april 
123               full            april
124               quarter         may
Run Code Online (Sandbox Code Playgroud)

我的预期产量:

efforts_id        cycle_name            release_name 
123               quarter,half,full     march,april
124               quarter               may
Run Code Online (Sandbox Code Playgroud)

我是oracle的初学者所以不确定如何做到这一点.任何帮助,将不胜感激.

谢谢

sql database oracle concatenation string-aggregation

5
推荐指数
2
解决办法
8696
查看次数

来自Postgresql中SQL Server的'stuff'和'for xml path('')'

我正在将一些SQL Server 2008R2查询迁移到Postgresql 9.0,我遇到了一些问题.这是SQL Server查询:

stuff((select ', '+p.[NAME] as 'data()' 
from BPROVIDERS_PROVIDER p, BORDER_ARTICLEORDERPROVIDER aop 
where p.OID = aop.PROVIDER for xml path('')),1,1,'')) as pNAMES
Run Code Online (Sandbox Code Playgroud)

阅读SQL Server文档我明白这会创建一个以逗号分隔的列表.我认为我可以在Postresql中更改stuff功能overlay.我对么?

第二个问题是SQL Server的for xml path('')作为参数.它返回分配给名为pNAMES而不是create row元素的属性的值.那是对的吗?

Query_to_xml()带属性的Postgresql 函数是否tableforest = 'true'也一样?

谢谢.

sql postgresql string-aggregation

5
推荐指数
1
解决办法
2万
查看次数

postgres 中没有 FILTER 的潜在空字段的字符串聚合。

在 Postgres 中,我尝试在服务器数据的结果行中包含到特定服务器的链接 IP 地址的逗号分隔列表。

最初我使用了 FILTER 功能,这似乎非常适合我的目的

STRING_AGG(ipadd, ',') FILTER ( WHERE ipadd is NULL OR ipadd != '') AS ipaddresses 
Run Code Online (Sandbox Code Playgroud)

产生结果行,例如

  server1;data;etc; 1.2.3.4;
  server2;data;etc; 11.22.33.44, 22.33.44.55;
  server3;data;etc;
  server3;data;etc; 23.45.67.89
Run Code Online (Sandbox Code Playgroud)

然而,据了解,它将运行的服务器使用较低版本的 postgresql,它不支持 FILTER 功能。

因此我需要简化对

STRING_AGG(ipadd, ',') AS ipaddresses
Run Code Online (Sandbox Code Playgroud)

由于从第二个表返回的多行中存在可能为空或 null 的条目,因此返回如下内容:

  server1;data;etc; ,1.2.3.4,,,;
  server2;data;etc; 11.22.33.44,,, 22.33.44.55,,,;
  server3;data;etc; ,,,,,,,,,
  server3;data;etc; ,,23.45.67.89,,
Run Code Online (Sandbox Code Playgroud)

每个空或空条目都会生成另一个空字段,该字段包含在正确的数据中。

是否有一种预过滤方法可以实现与上面的过滤查询相同的结果,或者甚至只是删除所有不分隔两个返回数据的逗号实例。

目前,我只是在调用后在服务器端解析这些内容,但如果可能的话,我更愿意在 SQL 端进行解析。

sql postgresql string-aggregation

5
推荐指数
1
解决办法
6404
查看次数

在早期版本上创建用户定义的函数,例如 SQL Server 2017 STRING_AGG

我尝试创建一个通用函数,可以像在 SQL Server 2017 上使用新的 string_agg 内置函数的示例一样使用

内部实现可以类似于以下内容

with tbl as(
   select a.Id, c.Desc
     from TableA a
     join TableB b on b.aId = a.Id
     join TableC c on c.Code = b.bCode 
)  
select distinct ID
     , STUFF(( select ', ' + Desc from tbl t where t.ID = tbl.ID 
            for xml path(''),TYPE).value('.','VARCHAR(MAX)'),1,2,'') Desc   
from tbl
Run Code Online (Sandbox Code Playgroud)

但是如何接收字段键、要连接的字段、分隔符和范围选择上下文呢?Inline与或Multi-Statement Table-Valued Functions相关吗?

sql-server user-defined-functions string-aggregation

5
推荐指数
1
解决办法
9728
查看次数

如何避免 STRING_AGG 函数中的重复

我的查询如下:

select 
    u.Id,
    STRING_AGG(sf.Naziv, ', ') as 'Ustrojstvena jedinica',
    ISNULL(CONVERT(varchar(200), (STRING_AGG(TRIM(p.Naziv), ', ')), 121), '') 
    as 'Partner',

from Ugovor as u

        left join VezaUgovorPartner as vup
            on vup.UgovorId = u.Id AND vup.IsDeleted = 'false'
        left join [TEST_MaticniPodaci2].dbo.Partner as p
            on p.PartnerID = vup.PartnerId
        left join [dbo].[VezaUgovorUstrojstvenaJedinica] as vuu
            on vuu.UgovorId = u.Id
        left join [TEST_MaticniPodaci2].hcphs.SifZavod as sf
            on sf.Id = vuu.UstrojstvenaJedinicaId
        left join [dbo].[SifVrstaUgovora] as vu
            on u.VrstaUgovoraId = vu.Id

  group by u.Id, sf.Naziv
Run Code Online (Sandbox Code Playgroud)

我的问题是我可以有更多的 sf.Naziv,也只有一个 sf.Naziv,所以我必须检查是否有一个,然后只显示一个结果,如果有两个或更多,则显示更多的结果。但现在的问题是,当我只有一个 sf.Naziv 时,查询返回两个同名的 sf.Naziv,因为在第一个 …

t-sql ssms distinct string-aggregation

5
推荐指数
1
解决办法
8738
查看次数

SQL Server 2016 中的 STRING_AGG 替换

我想聚合单列值,中间有分隔符并带有一些前缀。下面是尝试过的有效代码。

SELECT concat('TNB/IAG/',STRING_AGG(WF_ValStr, '/')) AS Result
    FROM wfattrdata where wf_id=35262472 and  WF_AttrID in (28,29,30,31,33);
Run Code Online (Sandbox Code Playgroud)

我可以在最新的 MSSql 版本中得到以下预期结果。

TNB/IAG/1/2/3/4/5
Run Code Online (Sandbox Code Playgroud)

如何替换上述查询以使其在 SQL Server 2016 中工作?

t-sql sql-server string-aggregation sql-server-2016

5
推荐指数
1
解决办法
4万
查看次数

为什么wm_concat在这里不起作用?

我有这个问题:

(SELECT OBJECT_ID from cr_object_group_entries_vw where object_group_id IN
    (SELECT ITEM FROM TABLE(CR_FN_SPLIT_STRING('28,56',','))))
Run Code Online (Sandbox Code Playgroud)

返回:

在此输入图像描述

但当我这样做时:

SELECT wm_concat(object_id) FROM
    (SELECT OBJECT_ID from cr_object_group_entries_vw where object_group_id IN
        (SELECT ITEM FROM TABLE(CR_FN_SPLIT_STRING('28,56',','))))
Run Code Online (Sandbox Code Playgroud)

我得到一个空白的结果......我做错了什么?

sql oracle oracle11g string-aggregation wm-concat

4
推荐指数
2
解决办法
2万
查看次数

通过Oracle连接

这是一个示例表数据

Fruit   Number
Apple    1
Apple    2
Apple    3
Kiwi     6
Kiwi     10
Run Code Online (Sandbox Code Playgroud)

我尝试连接表列值以获得以下内容

Fruit   Number
Apple    1-2-3
Kiwi     6-10
Run Code Online (Sandbox Code Playgroud)

有没有办法查询这个或存储过程?像Concatenate over(partition by)之类的东西,我对存储过程知之甚少.谢谢!

sql oracle oracle10g string-aggregation

4
推荐指数
1
解决办法
434
查看次数

Postgres 中从多行到单列

我通过 pgAdmin 4 使用具有只读访问权限的 Postgres 9.5,并且尝试编写一个选择查询来转换来自此表单的数据:

+----------+-------------------+--------------------+----------------+
| username |      filters      |       groups       |     roles      |
+----------+-------------------+--------------------+----------------+
| kd24     | Khaled  <27607>   | V1                 | NewsStand User |
| kd24     | Khaled  <27607>   | V1                 | User           |
| kd24     | Khaled  <27607>   | Weekly KPIs        | NewsStand User |
| kd24     | Khaled  <27607>   | Detailed Sales     | User           |
| kd24     | Khaled  <27607>   | Qanz Monthly Group | User           |
| kd24     | Khaled  <27607>   | Detailed …
Run Code Online (Sandbox Code Playgroud)

sql postgresql string-aggregation

4
推荐指数
1
解决办法
7283
查看次数