小编use*_*975的帖子

根据分组依据、前 1 行和 where case 进行更新

我有一个表如下:
表选择
这是此选择的结果:

SELECT ParentID, ID, [Default], IsOnTop, OrderBy
  FROM [table]
  WHERE ParentID IN (SELECT ParentID
      FROM [table]
      GROUP BY ParentID
      HAVING SUM([Default]) <> 1)
  ORDER BY ParentID
Run Code Online (Sandbox Code Playgroud)

现在,我想要做的是:对于每个ParentID组,将其中一行设置为默认值 ( [Default] = 1),其中使用以下逻辑选择该行:
如果组有一行,IsOnTop = 1则取此行,否则取前 1 行订购OrderBy
我完全不知道如何在 SQL 中执行此操作,并且我有超过 40 个这样的组,因此我想向您寻求帮助,最好对您的查询进行一些解释。

sql t-sql greatest-n-per-group

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

标签 统计

greatest-n-per-group ×1

sql ×1

t-sql ×1