假设我有一个名为“sourcetable”的表,其中包含colA,colB,colC。我只想创建一个具有非重复,唯一和随机整数的id列。如何在netezza sql或使用proc sql(SAS)创建它?
为了确保唯一性,您肯定会将id
限制为主键或唯一。
SAS函数UUIDGEN
或RANUNI
是在计算时生成具有非常高的唯一性概率值的候选者。我认为没有任何简单/隔离的功能可以保证100%它不会计算先前返回的值。
UUIDGEN
返回一个36字节的字符值,如170bf2ef-16c7-4b7f-b25b-000333d9679b
按1E15缩放的RANUNI
将返回最多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 How to overcome Netezza's lack of unique constraint/referential integrity enforcement?“