簡體   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