繁体   English   中英

SSRS:在SQL中使用CAST显示字段

[英]SSRS: Display field using CAST in sql

我正在尝试通过使用iif语句在同一字段中显示一个值。 但是一个是INT ,另一个是Decimal ,最后一个是百分比。 所以,我CAST他们为varchar的SQL。 如何在SSRS字段中显示结果?

这是一个例子:

IF @Choice = '1'
BEGIN
    SELECT 
       UserId, CAST(IntNum AS VarChar(10)) AS Result
    FROM Sample 
END 
ELSE IF @Choice = '2'
BEGIN
    SELECT 
       UserId, CAST(DecNum AS VarChar(10)) AS Result
    FROM Sample 
END

如何在SSRS字段中显示Result

而不是在您的SQL语句中嵌入逻辑,为什么不在报告中添加逻辑,因为(大概)这是@Choice的定义位置?

SQL:

-- @Choice is not needed in this query.
SELECT UserId, IntNum, DecNum
FROM Sample

报告:

在您的数据集的字段列表中添加一个计算字段(称为Result ):

=IIF(Parameters!Choice.Value = 1, Fields!IntNum.Value.ToString, Fields!DecNum.Value.ToString)

现在,您的报表将在数据集中具有4个字段:

  • UserId(int)
  • IntNum(int)
  • 十进制(十进制)
  • 结果(字符串)

我认为最好在CASE语句中做您的逻辑,这实际上是一列,因此它在SSRS中应该能很好地工作。

SELECT  UserID,
        CASE
            WHEN @Choice = 1 THEN CAST(IntNum AS VARCHAR(10))
            WHEN @Choice = 2 THEN CAST(DecNum AS VARCHAR(10))
            WHEN @Choice = 3 THEN CAST(PercentageNum AS VARCHAR(10))
        END AS Result
FROM    [Sample]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM