[英]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.