根据SSRS中的负值和正值对条件进行排序

问题描述 投票:0回答:2

我正在尝试根据以下条件进行排序,在该条件下,我用'-'隐藏了一个数值,我希望以某种方式进行排序,但是我排序(desc,asc)'-'应该位于顶部或底部,但是它不会影响我的排序,下面是一个示例并且-可以是负值或正值

before sorting  
1
2
3
-
5
6
7

after sorting 
-
1
2
3
5
6
7
sql reporting-services ssrs-2012
2个回答
0
投票

使用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);

0
投票

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

=Val(Fields!myColumn.Value)

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

如果这无济于事,请编辑问题(而不是添加更多评论),并从报告中的数据集查询中显示出什么样的数据。

© www.soinside.com 2019 - 2024. All rights reserved.