我对SSRS一无所知
我有一份SSRS报告,其中包含一个包含文字和数字的列。我希望按照字母顺序对所有文本进行排序,然后将所有数字按数字排序。
现有数据只是字符串。
有没有办法通过简单地编写排序表达式来实现这一点,或者我是否需要提前对数据进行排序并分配排序顺序成员?
示例:
如果我有以下内容:
“猫”
“熊”
“1”
“5.0”
“10”
“-4”
“狗”
“-6”
我想要:
“熊”
“猫”
“狗”
“-6”
“-4”
“1”
“5.0”
“10”
感谢, 马克斯托达德
答案 0 :(得分:1)
根据我的评论的答案进行修订,但这是一个开始。
DECLARE @foo TABLE(bar VARCHAR(32));
INSERT @foo SELECT 'cat'
UNION ALL SELECT 'bear'
UNION ALL SELECT '1'
UNION ALL SELECT '5'
UNION ALL SELECT '10'
UNION ALL SELECT '-4'
UNION ALL SELECT 'dog'
UNION ALL SELECT '-6';
SELECT bar FROM @foo
ORDER BY
CASE WHEN bar NOT LIKE '%[^0-9.-]%' THEN 2 ELSE 1 END,
CASE WHEN bar NOT LIKE '%[^0-9.-]%' AND bar <> '.' THEN CONVERT(DECIMAL(12,3), bar) END,
bar;
结果
bar
----------
bear
cat
dog
-6
-4
1
5
10