как отсортировать поле с символом и десятичным значением - PullRequest
0 голосов
/ 12 января 2019

я застрял в сценарии, где я должен сортировать «А-2,3» «а-1.1» и 'А-1,02. Как мы делаем это, используя jpql в весенних данных jpa или используя sql запрос. Буду признателен за ваш личный опыт и идею.

сортировка, ожидаемая в порядке возрастания на основе числового значения после a-.

1 Ответ

0 голосов
/ 21 января 2019

Это будет зависеть от базы данных, которую вы используете, но, например, в Oracle вы могли бы вызвать TO_NUMBER(SUBSTR(col, 3)) с помощью SQL:

WITH t (col) AS (
  SELECT 'a-2.3'  FROM dual UNION ALL
  SELECT 'a-1.1'  FROM dual UNION ALL
  SELECT 'a-1.02' FROM dual
)
SELECT col
FROM t 
ORDER BY to_number(substr(col, 3))

Это дает:

a-1.02
a-1.1
a-2.3

Конечно, вам придется адаптировать синтаксический анализ, если ваш префикс не всегда точно a-, но что-то динамическое.

В JPQL это может быть осуществимо: CAST(SUBSTRING(col, 3, LENGTH(col) - 2) AS NUMBER)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...