可以Concat的和转换,也可以串,但不能代替:
更新
这是你的施法看起来应该像:
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”
- 演员表(.. as float)..根据您的基础数据库,您可能需要使用'double','real'或'numeric'
- If你碰巧在某些行上有一些不同的格式,那么你有玩我的查询变化..
- 底线是,你不能在hql中使用REPLACE ..这样的功能不存在..你有使用SUBSTRING和LOCATE的组合。它不像使用REPLACE那样容易,但如果你付出努力,你可以把它关掉。
但是我需要删除删除点,我只是可以保留第一个点,因为我的版本号需要加倍。 –
给我一个例子 –
我有'1.2.3'和'1.2.5'2列我需要转换两个ro比较1.20(双或十进制) –