2015-09-16 36 views
0

我们正在使用SQL Server 2008 SR1,报表生成器2.0 我已经搜索了各种关于屏蔽的网站,但仍努力使其正常工作。我想掩盖一切,但最后4位数字的SSN的 我试着=Right(Fields!ssn.value,4, “NameInfo”) 一些变化,但我得到一个错误,由于从=First将其更改为Right 就不太清楚如何去正确地做它来实现面具报告上的SQL屏蔽

没有与表达的Textbox5:

=First(Fields!ssn.Value,"NameInfo") 

我的一个数据集是NameInfo和数据集查询:

SELECT nm.FullName2 
, nm.ssn 
, nm.dob 
, nm.SexDesc 
FROM jw50_Name AS nm 
WHERE NameID = @NameID 

当我修改表达式或试图包含在数据集查询中时,我生成的所有错误都是错误的。显然是新来的SQL和希望有人可能有一个建议,以帮助掩盖报表上的SSN - 感谢您的时间

回答

2

我想掩盖一切,但最后4位数字的SSN

考虑到您的SSN值是10位数字(例如),你可以使用字符串函数SUBSTRING()REPLICATE()得到这个工作就像

SELECT REPLICATE('X',6) + SUBSTRING(SSN_Field, 7,4) as SSN 
FROM table1; 
+1

我觉得OP想对过去的显示。四个面膜前6 .. 。'REPLICATE('X',6)+ SUBSTRING(SSN_Field, 7,4)as SSN' – xQbert

+0

@xQbert,谢谢。这是绝对正确的。我误解了这句话。 – Rahul

+0

SSN可能是9位或11位,取决于它是否包含' - '。只有在所有SSN的格式相同的情况下,固定位置上的子字符串才适用。但一般使用复制是合适的 –