假设我有一个名为sourcetable
, colA
,colB
的表colC
。我只是想创建一个具有非重复、唯一和随机整数的 id 列。如何在 netezza SQL 或使用 proc SQL (SAS) 中创建它?
user4892176
问问题
202 次
1 回答
0
为了确保唯一性,您肯定会限制id
为主键或唯一键。
SAS 函数UUIDGEN
或RANUNI
是在计算时生成具有非常高唯一性概率的值的候选者。我认为没有任何简单/独立的函数可以保证 100% 它不会计算先前返回的值。
UUIDGEN
返回一个 36 字节的字符值,例如170bf2ef-16c7-4b7f-b25b-000333d9679b
RANUNI
按 1E15 缩放将返回一个最多 14 位的整数值。
data want;
do i = 1 to 100;
id_v1 = uuidgen();
id_v2 = floor(1e15 * ranuni(0));
output;
end;
format id_v2 15.;
run;
对于 Netezza,请查看 SO如何克服 Netezza 缺乏唯一约束/参照完整性执行? "
于 2019-03-14T13:52:32.873 回答