【发布时间】:2018-08-15 16:32:47
【问题描述】:
create table Account(A_number number, B_number number, C_number, A_number_mask number as
GENERATED ALWAYS AS IDENTITY, B_number_mask number, C_number_mask )
插入后的表值是
A_number B_number C_number A_mask_number B_mask C_mask
10 100 200 1 NULL NULL
20 100 200 2 NULL NULL
30 101 201 3 NULL NULL
40 102 202 4 NULL NULL
50 103 203 5 NULL NULL
60 101 201 6 NULL NULL
现在我必须填充
- B_number 的 B_number_mask
- C 编号的 C_number_mask
当我屏蔽或创建序列时,新列也应该具有父列中重复值的重复值。
输出应该是这样的:
A_number B_number C_number A_mask_number B_mask C_mask
10 100 200 1 1 1000
20 100 200 2 1 1000
30 101 201 3 2 2000
40 102 202 4 3 3000
50 103 203 5 4 4000
60 101 201 6 2 2000
我必须将排序的列而不是父列提供给用户。 请随意使用序列的任何起始编号。
【问题讨论】:
-
向我们展示您如何创建第二个表以及如何填充
-
您好,我还没有创建第二个表。我想在我的第二张桌子上得到这个输出。对于 A_number_mask,我可以在创建第二个表时使用一个序列,出于安全目的,我可以显示该表而不是 A_number。但我不知道我应该为 B_mask_number 尝试什么逻辑,因为它有重复。我需要一个基于 B_number 的序列或唯一值,前提是我为重复的 B_number 获得相同的 B_number_mask
-
解释你想要达到的目标。现在我无法理解逻辑。英语是您的主要语言吗?因为如果你说“我有”意味着已经完成,而不是“我想要”或“我需要”意味着你需要帮助
-
感谢您的指正。英语不是我的主要语言,我正在尽力解释我的要求。对于 A_number 和 B_number 我想创建一个随机的唯一编号。这样我就不必出于安全目的向公司提供实际价值。我可以使用序列为 A_number 创建唯一编号。但是如果我使用序列,B_number 具有重复值,对于相同的 B_number 值,我会得到不同的值,这是我不想要的。因此,如果有任何其他方法可以通过 SQL 实现要求,请指导我。
-
下次试试用谷歌翻译吧。我们也有其他语言的 SO,这可能会有所帮助。但我会再次尝试回答你的问题
标签: sql duplicates db2 unique sequence