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

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

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

  1. before sorting
  2. 1
  3. 2
  4. 3
  5. -
  6. 5
  7. 6
  8. 7
  9. after sorting
  10. -
  11. 1
  12. 2
  13. 3
  14. 5
  15. 6
  16. 7
w1e3prcc

w1e3prcc1#

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

  1. =Val(Fields!myColumn.Value)

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

ql3eal8s

ql3eal8s2#

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

  1. order by col

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

zz2j4svz

zz2j4svz3#

使用 CASE 表达式:

  1. SELECT *
  2. FROM yourTable
  3. ORDER BY
  4. CASE WHEN col = '-' THEN 0 ELSE 1 END,
  5. col;

实际上,似乎是在同一列中混合字符和数字数据。为了承受价值 - ,它必须是文本,因此我们可能需要做一些额外的工作,以确保文本编号正确排序:

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

相关问题