Sql server MSSQL问题与Where In多子句
我正在使用两种不同的数据库POSTGRE-SQL和MSSQL以及java hibernate标准API。标准的Sql转换如下所示: 从表t中选择*其中t.a,t.b在 选择maxthis_u0.a作为y0_0, 这是y1 从这张桌子上 按此\u.id分组 使用Where In-multi columns的查询在PostGre数据库中运行良好,但不适用于MSSQL。有人可以建议我使用聚合函数进行多列比较的SQL解决方案吗?使用联接:Sql server MSSQL问题与Where In多子句,sql-server,hibernate,hibernate-criteria,Sql Server,Hibernate,Hibernate Criteria,我正在使用两种不同的数据库POSTGRE-SQL和MSSQL以及java hibernate标准API。标准的Sql转换如下所示: 从表t中选择*其中t.a,t.b在 选择maxthis_u0.a作为y0_0, 这是y1 从这张桌子上 按此\u.id分组 使用Where In-multi columns的查询在PostGre数据库中运行良好,但不适用于MSSQL。有人可以建议我使用聚合函数进行多列比较的SQL解决方案吗?使用联接: Select * From table t inner jo
Select *
From table t
inner join (
SELECT max(this_.a) AS y0_
, this_.b AS y1_
FROM table this_
Group by this_.b) a on t.a = a.y0_ and t.b = y1_
如果是瓦查尔
SELECT *
FROM table t
WHERE (t.a + '-' + t.b)
IN (SELECT (max(this_.a) + '-' + this_.b)
FROM table this_ )
如果是int
SELECT *
FROM table t
WHERE (CONVERT(nvarcahr(32), t.a) + '-' + CONVERT(nvarcahr(32), t.b))
IN (SELECT (CONVERT(nvarcahr(32), max(this_.a)) + '-' + CONVERT(nvarcahr(32),this_.b))
FROM table this_ )
什么是不工作?您尚未发布任何错误消息。但是,您的子查询没有GROUPBY子句,并且正在使用聚合;所以我假设错误告诉了你问题所在@Larnu我刚刚发布了部分查询。。我现在已经更新了。”不起作用意味着“MSSQL在这里只需要一列,所以它的give exception”子查询返回更多列“这就是为什么it在帖子中发布所有相关SQL和错误消息很重要的原因。否则人们的答案只是猜测。