ssrs中基于正负值的带条件sql排序

8zzbczxx  于 2021-08-09  发布在  Java
关注(0)|答案(3)|浏览(325)

我正在尝试根据下面的条件进行排序,其中我隐藏了一个带有“-”的数字值,我希望以这样的方式进行排序:不管我如何排序(desc,asc)“-”应该在顶部或底部,但它不影响我的排序,下面是一个示例,可以是负值或正值

before sorting  
1
2
3
-
5
6
7

after sorting 
-
1
2
3
5
6
7
w1e3prcc

w1e3prcc1#

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

=Val(Fields!myColumn.Value)

这将为 - 行和其他行的数值。
如果没有帮助,请编辑问题(而不是添加更多注解),并在报告中显示来自数据集查询的数据。

ql3eal8s

ql3eal8s2#

不清楚列的数据类型是什么,因为 - 不是数值。
但是,无论类型如何,这都会满足您的要求:

order by col

如果列是数字 -NULL ,这是因为升序排序 NULL 价值观优先。
如果列是字符串 '-' 是价值,这是因为 '-' 在数字之前排序。
这是一把小提琴。

zz2j4svz

zz2j4svz3#

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

相关问题