屏蔽 SQL Teradata 中的敏感数据
Masking sensitive Data in SQL Teradata
亲爱的,
请给我一个带有如下所示 SerialID 的列,我需要使用 SQL 查询
来屏蔽它
|SerialID |
|--------------------|
|00027083691581342079|
|00027139741580324755|
|00027016011583677218|
|00027016011583677218|
|00027139061577873262|
|00027056351580383150|
|00027143131580371648|
|00027143131580371648|
|00027143131580371648|
|00027147651583526704|
输出如下
|SerialID |NewID|
|--------------------|-----|
|00027083691581342079|1 |
|00027139741580324755|2 |
|00027016011583677218|3 |
|00027016011583677218|3 |
|00027139061577873262|4 |
|00027056351580383150|5 |
|00027143131580371648|6 |
|00027143131580371648|6 |
|00027143131580371648|6 |
|00027147651583526704|7 |
您可以使用 dense_rank()
:
select serialid, dense_rank() over (order by serialid) as newid
from t;
编辑:
我在一些并行系统上有经验,以下速度更快:
select t.*, newid
from t join
(select serialid,
row_number() over (order by serialid) as newid
from t
group by serialid
) tt
on t.serialid = tt.serialid;
有些数据库需要对单个节点上的所有数据进行排序,因为没有partition by
使用dense_rank()
。聚合查询减少了数据量,因此可以显着提高性能——但我不确定这个技巧在 Teradata 中是否有效。
亲爱的,
请给我一个带有如下所示 SerialID 的列,我需要使用 SQL 查询
来屏蔽它|SerialID |
|--------------------|
|00027083691581342079|
|00027139741580324755|
|00027016011583677218|
|00027016011583677218|
|00027139061577873262|
|00027056351580383150|
|00027143131580371648|
|00027143131580371648|
|00027143131580371648|
|00027147651583526704|
输出如下
|SerialID |NewID|
|--------------------|-----|
|00027083691581342079|1 |
|00027139741580324755|2 |
|00027016011583677218|3 |
|00027016011583677218|3 |
|00027139061577873262|4 |
|00027056351580383150|5 |
|00027143131580371648|6 |
|00027143131580371648|6 |
|00027143131580371648|6 |
|00027147651583526704|7 |
您可以使用 dense_rank()
:
select serialid, dense_rank() over (order by serialid) as newid
from t;
编辑:
我在一些并行系统上有经验,以下速度更快:
select t.*, newid
from t join
(select serialid,
row_number() over (order by serialid) as newid
from t
group by serialid
) tt
on t.serialid = tt.serialid;
有些数据库需要对单个节点上的所有数据进行排序,因为没有partition by
使用dense_rank()
。聚合查询减少了数据量,因此可以显着提高性能——但我不确定这个技巧在 Teradata 中是否有效。