我有一张有两列的桌子..。
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-3的。
我希望这有意义,谢谢。
发布于 2013-07-29 17:06:28
您可以按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将出现在L2之前。有其他方法可以解决这个问题,但我不知道这是否会成为你的问题。
https://stackoverflow.com/questions/17929926
复制相似问题