假设我有一个表(关系)
MyTab(ID1,ID2,IsMarked, data,....)
示例数据可能如下所示:
1, 1, 1, ...
1, 2, 0, ...
1, 3, 0, ...
2, 34, 1, ...
3, 4, 0, ...
4, 546, 0, ...
4, 8, 0, ...
每个只能标记一个ID1
。我想获取标记1
为所有 Entity 的数据ID1
。如果没有标记记录,则获取第一个或其中任何一个。
对于上述样本数据,结果应为:
1, 1, 1, ...
2, 34, 1, ...
3, 4, 0, ...
4, 546, 0, ...
联合可能是一个解决方案,但太长并且可能性能不佳。我的想法是按ID1
和 IsMarked
desc 对数据进行排序,为 each 获取第一个 1 ID1
,但是如何SQL
为这种情况编写 a 呢?