假设我有一个名为sourcetable
的表,带有colA
,colB
,colC
。我只想创建一个具有非重复,独特和随机整数的ID列。我如何在Netezza SQL或使用Proc SQL(SAS)中创建它?
为了确保唯一性,您肯定会将 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,请尝试查看,以便如何克服Netezza缺乏独特的约束/参考完整性执行?"