【发布时间】:2012-06-07 18:11:42
【问题描述】:
我有一个简单的查询:
select key, name from cities
这给了我这样的价值观:
11 | Chicago
21 | New York
31 | Boston
我需要做的是在 SQL 或 Java 中创建所有可能组合的哈希,以便在最后收到此结果:
11 | Chicago
21 | New York
31 | Boston
32 | Chicago/New York
42 | Chicago/Boston
52 | New York/Boston
63 | Chicago/New York/Boston
有什么想法吗?
【问题讨论】:
-
为什么您的预期输出与所有三个城市都没有一行?如果键值之和不唯一怎么办?
-
你说得对,我刚刚添加了三个城市的最后一个结果。我知道,钥匙永远是独一无二的。
-
“创建哈希”是什么意思?术语“哈希”有多种含义(我责怪 Perl),具体取决于上下文,这里并不完全清楚......
-
对不起,我猜 hash 不是正确的描述。它更像是一个地图,其中 11、21 等是键,城市名称是值。
-
为什么芝加哥/纽约是 33 而不是 32?当两个组合加起来为同一个键时,一般情况下会发生什么? Java Hash 不能保存重复的键。