Sql SSRS中基于正负值的带条件排序
我试图根据下面的条件进行排序,其中我隐藏了一个带有“-”的数值,我想以一种方式进行排序,无论我如何排序(desc,asc)“-”都应该位于顶部或底部,但它不会影响我的排序,下面是一个示例 和-可以是负值或正值Sql SSRS中基于正负值的带条件排序,sql,reporting-services,ssrs-2012,Sql,Reporting Services,Ssrs 2012,我试图根据下面的条件进行排序,其中我隐藏了一个带有“-”的数值,我想以一种方式进行排序,无论我如何排序(desc,asc)“-”都应该位于顶部或底部,但它不会影响我的排序,下面是一个示例 和-可以是负值或正值 before sorting 1 2 3 - 5 6 7 after sorting - 1 2 3 5 6 7 使用大小写表达式进行排序: SELECT * FROM yourTable ORDER BY CASE WHEN col = '-' THEN 0 ELSE
before sorting
1
2
3
-
5
6
7
after sorting
-
1
2
3
5
6
7
使用
大小写
表达式进行排序:
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);
使用
大小写
表达式进行排序:
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);
可以将排序顺序表达式设置为
=Val(Fields!myColumn.Value)
这将为-
行返回零,并为其他行返回数值
如果没有帮助,请编辑问题(而不是添加更多注释),并在报告中显示来自数据集查询的数据的外观。您可以将排序顺序表达式设置为
=Val(Fields!myColumn.Value)
这将为-
行返回零,并为其他行返回数值
如果这没有帮助,请编辑问题(而不是添加更多注释),并在报告中显示来自数据集查询的数据的外观。由于
-
不是数值,因此不清楚该列的数据类型
但是,无论类型如何,这都符合您的要求:
order by col
如果列是一个数字,而-
是NULL
,这会起作用,因为升序排序将NULL
值放在第一位
如果列是一个字符串,并且'-'
是值,这是因为'-'
在数字之前排序
是一个dbfiddle。不清楚列的数据类型是什么,因为
-
不是数值
但是,无论类型如何,这都符合您的要求:
order by col
如果列是一个数字,而-
是NULL
,这会起作用,因为升序排序将NULL
值放在第一位
如果列是一个字符串,并且'-'
是值,这是因为'-'
在数字之前排序
是一个Dfiddle。谢谢,但我需要ssrs表达式谢谢,但我需要ssrs表达式中的
'-'
不是一个数值,所以我不理解你的问题。'-'
不是一个数值,所以我不理解你的问题。