屏蔽值联合
Union of masked values
我在合并 2 个 table 时遇到问题,这些 table 的值使用随机函数进行了屏蔽。除非有人有权读取所有数据,否则用户应该看到 (-1000,2000)
之间的随机值
为每个 table 创建单独的视图以正确的方式生成值,但是当我尝试合并这 2 个 table 或视图时出现问题。我看到的不是随机值,而是所有东西都为 0
假设有 table A 定义为:
ID INT IDENTITY (1, 1) NOT NULL,
Value MONEY MASKED WITH (FUNCTION = 'random(-1000, 20000)') NOT NULL
和tableB为:
ID INT IDENTITY (1, 1) NOT NULL,
Value DECIMAL (18, 6) MASKED WITH (FUNCTION = 'random(-1000.000000, 20000.000000)') NULL
在table答:
ID Value
1 12
2 21
3 34
在table B:
ID Value
7 17.12
8 23.01
9 2.56
每个 table 的视图显示每个 table 的 ID 和没有权限的用户的掩码值以及 table 中有权限的用户的值是正确的
但是两个 table 的 UNION 应该显示 ID 和屏蔽值,但它显示值 = 0.000000。
我对如何使这些值在联合中显示为屏蔽随机值感到困惑
您可以 UNION
/ UNION ALL
一个 select 相同的 table 没有问题。但是使用两个不同的 tables 对所有屏蔽值给出 0。
您可以使用以下方法作为使用临时 tables 的解决方法:
SELECT * INTO #t1 FROM TableA
SELECT * INTO #t2 FROM TableB
SELECT * FROM #t1
UNION ALL
SELECT * FROM #t2
我在合并 2 个 table 时遇到问题,这些 table 的值使用随机函数进行了屏蔽。除非有人有权读取所有数据,否则用户应该看到 (-1000,2000)
之间的随机值为每个 table 创建单独的视图以正确的方式生成值,但是当我尝试合并这 2 个 table 或视图时出现问题。我看到的不是随机值,而是所有东西都为 0
假设有 table A 定义为:
ID INT IDENTITY (1, 1) NOT NULL,
Value MONEY MASKED WITH (FUNCTION = 'random(-1000, 20000)') NOT NULL
和tableB为:
ID INT IDENTITY (1, 1) NOT NULL,
Value DECIMAL (18, 6) MASKED WITH (FUNCTION = 'random(-1000.000000, 20000.000000)') NULL
在table答:
ID Value
1 12
2 21
3 34
在table B:
ID Value
7 17.12
8 23.01
9 2.56
每个 table 的视图显示每个 table 的 ID 和没有权限的用户的掩码值以及 table 中有权限的用户的值是正确的
但是两个 table 的 UNION 应该显示 ID 和屏蔽值,但它显示值 = 0.000000。
我对如何使这些值在联合中显示为屏蔽随机值感到困惑
您可以 UNION
/ UNION ALL
一个 select 相同的 table 没有问题。但是使用两个不同的 tables 对所有屏蔽值给出 0。
您可以使用以下方法作为使用临时 tables 的解决方法:
SELECT * INTO #t1 FROM TableA
SELECT * INTO #t2 FROM TableB
SELECT * FROM #t1
UNION ALL
SELECT * FROM #t2