sql - 如何在 MS-SQL 中替换 MySQL 代码
问题描述
我在 Mysql 中编写了以下代码。但现在我想在 MS-SQL 服务器中运行相同的代码。我怎么做?!我不知道 MS-SQL 中的一些语法。
代码:
select
t2.gname
from
(select
sum(t1.strength) as sst,
group_concat(t1.name order by t1.name) as gname
from
(select
a.name,
a.strength,
group_concat(d.zone order by d.zone) as zones
from Animals a
inner join Details d on a.id = d.id
group by a.id) t1
group by t1.zones) t2
order by t2.sst desc limit 1;
我在 MySQL 中得到了正确的输出。但是我怎样才能为 MS-SQL 改变它呢?
请帮忙!与此解决方案有关的注意问题是:问题陈述
解决方案
我会建议:
select top (1) string_agg(a.name, ',') within group (order by a.name) as gname
from (select a.name, a.strength,
string_agg(d.zone, ',') within group (order by d.zone) as zones
from Animals a join
Details d
on a.id = d.id
group by a.id, a.name, a.strength
) a
group by a.zones
order by sum(a.strength) desc;
换句话说,在 MySQL 或 SQL Server 中都不需要外部查询。
推荐阅读
- php - 启用 php 的 Ubuntu 上的 Apache ERR_CONNECTION_REFUSED
- java - 两个时间戳之间的天数
- asp.net-core - 在 mvc 视图共享文件夹的身份剃刀页面中使用第二个自定义布局页面时出错
- typescript - 如何创建地图来存储不同数据类型的主题/行为主题
- c# - 在 Unity 中使用 Photon Networking 移动客户端/玩家的问题
- swift - 在 Swift 中,是否可以在默认参数值中使用参数值?
- c# - C#如何用同一个声音播放器播放多个声音/歌曲
- java - Type type-hierarchy 类型应该如何实现?
- unix - 如何用 SED 替换 html 标签?
- microsoft-graph-api - MS Graph API 用户 ID 是否区分大小写?