gpt4 book ai didi

mysql - 计算 SQL 中的子字符串(在 Digital Metaphors 的 ReportBuilder 中)

转载 作者:行者123 更新时间:2023-11-29 17:43:08 25 4
gpt4 key购买 nike

我正在尝试在 ReportBuilder(Digital Metaphors,而不是 Microsoft)中创建报告,但无法让 SQL 执行我想要的操作。

我有一个带有字段building的表:

| building   |
+------------+
| WhiteHouse |
| TajMahal |

另一个带有字段locations的表:

| id | locations                                                       |
+----+-----------------------------------------------------------------+
| 1 | WhiteHouse:RoseGarden,WhiteHouse:MapRoom,TajMahal:MainSanctuary |
| 2 | TajMahal:NorthGarden,WhiteHouse:GreenRoom |

我想创建一个表格,显示每个建筑物在位置中使用的次数,如下所示:

| building   | count |
+------------+-------+
| WhiteHouse | 3 |
| TajMahal | 2 |

字符 :, 绝不会在建筑物或房间名称中使用。即使是假设建筑物名称永远不会出现在房间名称中的快速而肮脏的解决方案对我来说也足够了。

当然,用任何理智的编程语言都可以很容易地做到这一点(总共超过像 /\bWhiteHouse:/ 这样的语言);诀窍是让 RB 去做这件事。欢迎提出解决方法的建议。

最佳答案

在自定义 sql split function 的帮助下,可以在 SQL Server 中使用“,”和“:”字符作为分隔符将位置字符串分割成多个部分,如下所示

select 
p2.val,
count(p2.val)
from locations l
cross apply dbo.split(l.locations,',') p1
cross apply dbo.split(p1.val,':') p2
inner join building b
on b.building = p2.val
group by p2.val

我不确定 mysql 中是否有类似的解决方案,如果有,请检查以下解决方案作为模板

关于mysql - 计算 SQL 中的子字符串(在 Digital Metaphors 的 ReportBuilder 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924502/

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