Вы можете Concat и конвертировать, вы также можете подстроки, но вы не можете заменить:
Update
Это как ваш бросок должен выглядеть следующим образом:
cast(
(concat(
substring(u.firstName,1,locate('.', u.firstName))
, concat(
substring(
u.firstName
,1+locate('.', u.firstName, locate('.', u.firstName))
,locate('.', u.firstName, 1+locate('.', u.firstName, locate('.', u.firstName)))- (1+locate('.', u.firstName, locate('.', u.firstName)))
)
, substring(
u.firstName
, 1+locate('.', u.firstName, 1+locate('.', u.firstName, locate('.', u.firstName)))
, length(u.firstName)
)
)
)
) as float
)
Дополнительно:
- Это работает для строк типа: «1.2.3»
- Листинг (.. как плавающий) .. вам может потребоваться использование «двойного», «реального» или «цифрового» в зависимости от вашей базовой базы данных.
- Если у вас есть немного другой формат на некоторых строках, тогда вы играете с вариацией моего запроса.
- Суть в том, что вы не можете использовать REPLACE в hql .. такая функция не существует .. у вас есть использовать комбинацию SUBSTRING AND LOCATE. Это не так просто, как это было бы с REPLACE, но вы можете снять его, если приложите усилия.
Но мне нужно удалить удалить точки, я просто могу сохранить первую точку, потому что мой номер для версии должен быть двойным. –
дайте мне пример –
У меня есть 2 колонки с '1.2.3' и '1.2.5' Мне нужно преобразовать оба ro, сравнивая с 1.20 (double или decimal) –