【问题标题】:Sorting with condition in based on negative and positive value in SSRS根据SSRS中的负值和正值对条件进行排序
【发布时间】:2020-05-21 09:37:55
【问题描述】:

我正在尝试根据以下条件进行排序,其中我用“-”隐藏了一个数值但它不影响我的排序,下面是一个例子 和 - 可以是负值或正值

before sorting  
1
2
3
-
5
6
7

after sorting 
-
1
2
3
5
6
7

【问题讨论】:

  • '-' 不是数值,所以我不明白你的问题。

标签: sql reporting-services ssrs-2012


【解决方案1】:

您可以将排序顺序表达式设置为类似

=Val(Fields!myColumn.Value)

这将为- 行返回零,为其他行返回数值。

如果这没有帮助,请编辑问题(而不是添加更多 cmets)并在报告中显示来自您的数据集查询的数据。

【讨论】:

    【解决方案2】:

    目前还不清楚该列的数据类型是什么,因为- 不是数值。

    但是,无论类型如何,这都可以满足您的需求:

    order by col
    

    如果列是一个数字并且- 是NULL,这是因为升序排序会将NULL 值放在首位。

    如果列是字符串且'-' 是值,则此方法有效,因为'-' 在数字之前排序。

    Here 是一个 dbfiddle。

    【讨论】:

      【解决方案3】:

      使用CASE 表达式排序:

      SELECT *
      FROM yourTable
      ORDER BY
          CASE WHEN col = '-' THEN 0 ELSE 1 END,
          col;
      

      实际上,您似乎在同一列中混合了字符和数字数据。为了承载值-,它必须是文本,所以我们应该做一些额外的工作来确保文本数字正确排序:

      SELECT *
      FROM yourTable
      ORDER BY
          CASE WHEN col = '-' THEN 0 ELSE 1 END,
          TRY_CONVERT(NUMERIC(10), col);
      

      【讨论】:

      • 谢谢,但我需要 ssrs 表达式
      猜你喜欢
      • 2016-11-14
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 1970-01-01
      相关资源
      最近更新 更多