第一次编写。
我的问题是如何进行此查询:
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
所以现在它可以比较字符串,因为它们的长度相等