首页 > 解决方案 > 将mysql选择非聚合转换为mssql

问题描述

我不会假装完全了解这个 mysql 选择中发生了什么,但我需要它的 mssql 等价物。它依赖于将 mysql ONLY_FULL_GROUP_BY 配置设置为默认值。

SELECT *, IFNULL(cast(MAX(bodbedrag) as decimal(10,2)),Startprijs) as prijs 
FROM Voorwerp v LEFT JOIN 
     Bod b 
     on v.voorwerpnummer=b.voorwerp 
GROUP BY Voorwerpnummer

基本上我希望我能得到这个mysql查询在mssql中得到的完全相同的结果。但是,您不能像在 mysql 中那样在 mssql 中选择非聚合。

我尝试在http://www.sqllines.com/online上使用该工具对其进行转换,但是它不够聪明,无法确定您无法在 mssql 中选择非聚合

标签: mysqlsql-server

解决方案


SELECT * FROM (SELECT *, ISNULL(cast(hoogstebod as decimal(10,2)) ,Startprijs) as prijs
               from voorwerp left join (select max(bodbedrag) as hoogstebod ,voorwerp from bod
               group by voorwerp) t2
               on voorwerpnummer = voorwerp) as combinetable


found a fix

推荐阅读