假设我有一个SELECT ...
返回sth的查询。像这样:
role name
-------- -------
MANAGER Alice
WORKER Bob
WORKER Evan
WORKER John
MANAGER Max
WORKER Steve
是否可以添加另一列来枚举每个组中的行(即,枚举具有其他角色的经理,工人和人员,而不考虑其他角色)?像这样:
role name no.
-------- ------- ----
MANAGER Alice 1
WORKER Bob 1 // second row, but the first worker
WORKER Evan 2
WORKER John 3
MANAGER Max 2 // fifth row, but only the second manager
WORKER Steve 4
使用Oracle扩展很好。
使用窗口功能:
select role, name,
row_number() over (partition by role order by name) as rn
from the_table
order by name;
问题内容: 我想知道是否有可能枚举返回的行。不根据任何列的内容,而只是产生一个连续的整数索引。例如 将返回一些内容: 它用于https://data.stackexchange.com/ 问题答案: 尝试:
我用一些字符串作为属性的常量创建了一个枚举。每个常数中字符串的数量都不一样,所以我使用了varargs(第一次这样做)。这是我的枚举: 现在我想要能够键入类似的内容:
我想编写一个返回枚举数的方法(类似于返回的枚举数),该方法连续返回文件的每一行,但会被占用。我的第一个方法是 这似乎是有效的,但是如果我理解正确(如果我错了,请纠正我),文件将作为一个整体进入内存,以便应用。
问题内容: 我想声明一个枚举Direction,它具有一个返回相反方向的方法(以下语法不正确,即,不能实例化枚举,但它说明了我的观点)。这在Java中可行吗? 这是代码: 问题答案: 对于那些按标题吸引的人:是的,您可以在枚举中定义自己的方法。如果您想知道如何调用这种非静态方法,则可以使用与其他任何非静态方法相同的方法- 在定义或继承该方法的类型实例上调用它。如果是枚举,则此类实例仅为s。 因此,
问题内容: 是否可以在Java中定义类似的内容? C#代码: 例如,如果设置为then,结果将为: 我想实现类似的东西!Java有可能吗? 问题答案: 好吧,您 几乎 可以做到: 然后: 在某些情况下,这可能很有用,但是正如Michael所说,您绝对应该考虑一般的“值集”选项。 如果 确实 决定使用带值的枚举,则可以在枚举本身内放入额外的逻辑: