我有一个有两列的表......
LN | SRCREF
LN-1 | LN/123456
LN-1 | LN/789012
LN-2 | LN/123456
LN-2 | LN/098765
LN-3 | LN/123456
LN-3 | LN/789012
LN-3 | LN/432109
我想要归还这样的东西......
LN | SRCREF
LN-1 | LN/123456
LN-1 | LN/789012
LN-2 | LN/098765
LN-3 | LN/432109
所以换句话说,我只想以优先顺序返回SRCREF,所以我看到所有那些拥有LN-1然后那些没有LN-1而LN-2然后最终只拥有LN-1的那些LN-3。
我希望这是有道理的,谢谢。
答案 0 :(得分:2)
您可以按SRCREF进行分组。这意味着您在结果中只有一个值SRCREF。
然后,您可以使用聚合函数从LN获取一个特定值以使用该SRCREF值。在这种情况下,我使用min
返回最低值。因此,您获得的每个SRCREF值都具有最低的LN值。
最后,我使用order by
按最低值排序。
select
min(LN) as first,
SRCREF
from
YourTable t
group by
SRCREF
order by
min(LN)
请注意,在这种情况下,您可能会得到奇怪的结果,因为第一列是字符字段。这意味着它的内容按字母顺序进行比较。这意味着L-10将在L-2之前出现。还有其他方法可以解决这个问题,但我不知道这对你来说是不是一个问题。