我正在尝试根据以下条件进行排序,在该条件下,我用'-'隐藏了一个数值,我希望以某种方式进行排序,但是我排序(desc,asc)'-'应该位于顶部或底部,但是它不会影响我的排序,下面是一个示例并且-可以是负值或正值
before sorting
1
2
3
-
5
6
7
after sorting
-
1
2
3
5
6
7
使用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);
您可以将排序顺序表达式设置为类似
=Val(Fields!myColumn.Value)
-
行将返回零,其他行将返回数值。
如果这无济于事,请编辑问题(而不是添加更多评论),并从报告中的数据集查询中显示出什么样的数据。