Как отсортировать столбец в отчете SSRS по алфавиту И по номерам? - PullRequest
0 голосов
/ 09 февраля 2012

Я ничего не знаю о SSRS

У меня есть отчет SSRS со столбцом, содержащим текст и цифры.Я хочу, чтобы столбец сортировался со всем текстом, сначала отсортированным по алфавиту, затем все числа были отсортированы по номерам.

Все данные - это просто строки.

Есть ли способ сделать это,просто написав выражение сортировки, или мне нужно как-то заранее выполнить сортировку данных и назначить член порядка сортировки?

пример:

Если у меня есть следующее:
"кошка"
"медведь"
"1"
"5,0"
"10"
"-4"
"собака"
"-6"

Я бы хотел:

"медведь"
"кошка"
"собака"
"-6"
"-4"
"1"
"5,0"
"10"

спасибо, Марк Стоддард

1 Ответ

1 голос
/ 09 февраля 2012

Возможны изменения, основанные на ответах на мой комментарий, но здесь мы начнем.

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
...