我正在从包含患者历史信息 (PHI) 的数据中创建演示数据。有几列我只想生成一个在整个数据中保持一致的随机值。例如,有一个像 SSN 这样的字段,我想为每个唯一的 SSN 创建一个随机的 9 位数字,但在索赔属于同一个人的情况下保持这个数字相同。所以 1 个 SSN 可能有 5 个声明,每个声明将具有相同的随机创建的 SSN。
样本
ssn date1 procedure
443234432 1/1/2019 needle poke
443234432 1/2/2019 needle poke
676343522 1/3/2019 total knee procedure
443234432 1/4/2019 total hip procedure
676343522 1/5/2019 needle poke
最终的
ssn date1 procedure
856345544 1/1/2019 needle poke
856345544 1/2/2019 needle poke
979583338 1/3/2019 total knee procedure
856345544 1/4/2019 total hip procedure
979583338 1/5/2019 needle poke
如您所见,snn 发生了变化,但对于 ssn 相同的所有实例都保持不变。
对于这样的数字,我可以转换为数字并乘/除/加/减来创建一个保持完整性的随机数,但是对于有非数字的情况,我该如何处理呢?
我尝试使用 HASHBYTES 但得到了很多奇怪的字符。是否有另一种方法可以生成随机值并在整个数据集中保持一致性?
RIGHT(convert(NVARCHAR(10), HASHBYTES('MD5', SSN)),10) as SSN
RESULTS:
댛량뇟㻣砖聋蠤
我已经阅读了许多关于此的文章,但我找不到太多关于在多个声明中保持一致性的内容。我很感激任何反馈。