Hibernate/jpql 使用> <运算符比较不同长度的字符串,以查找一系列 entites



第一次编写。

我的问题是如何进行此查询:

Select client from Client client where client.zipcode is > ?1 and client.zipcode<?2

鉴于客户。邮政编码包含字母和数字,不同长度的参数也是如此

因此参数 1 = 100

和参数 2 = 1000将找到一个客户端.邮政编码 ="AB 200"

我已经从zipcode中删除了文本部分,然后将其转换为数字。

select client from Client client where 
CAST(TRIM(SUBSTRING(client.zipcode, LOCATE(' ', client.zipcode)+1)) AS float) > ?1
and 
CAST(TRIM(SUBSTRING(client.zipcode, LOCATE(' ', client.zipcode)+1)) AS float) < ?2

我最终做的是在前面用 0es 填充我的参数,然后将其子字符串长度为 16

我在查询中也做了同样的事情

 substring('0000000000000000'+coalesce(client.zipcodee),LENGTH(coalesce(client. 
 zipcode)+1,16)<=?1

所以现在它可以比较字符串,因为它们的长度相等

最新更新