[英]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个字段:
我认为最好在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.