我有一个需求,我转换一个ID (十进制例子,536879311820 ),并在转换后使用表达式构建器显示在SSRS表中,如图所示。
转换规则如下:
因此,536879311820应在报告中显示为99820。我在表达式构建器中尝试了以下表达式,
=Right(HEX(Fields!PersonId.Value), 8)
因为这个表达式的结果是字符串形式的十六进制数,所以我在表达式构建器的通用函数类别中找不到任何函数。
发布于 2016-06-18 03:47:34
在获得最后8个字符后,必须将字符串格式化为十六进制:
=CDec("&H" + Right(Hex(536879311820), 8))
发布于 2016-06-17 19:19:18
在SQL中更容易做到这一点。下面是一些代码,可以帮你完成这项工作。我包含了两个额外的列,这样您就可以看到最后一列是如何计算的:
SELECT CAST(123456789 AS VARBINARY(8)) HexValue, CONVERT(VARCHAR(MAX), CAST(123456789 AS VARBINARY(8)),2) AS VARCHARHEX, RIGHT(CONVERT(VARCHAR(MAX), CAST(123456789 AS VARBINARY(8)),2),5) AS Last5Chars
https://stackoverflow.com/questions/37879305
复制相似问题