VEHICLE 中车牌号唯一,不重复,hphm ='京BPZ817'只有一条记录存在。
下面的查询结果会出现两条一模一样的记录。
select * from (
select replace(('京'||hphm),'京京','京') hphm,hpzl
from VEHICLE t
where hpzl in ('01', '02')
)
where hphm ='京BPZ817'
-----------------------------------------
下面的查询只返回一条记录
select * from (
select hphm,hpzl
from VEHICLE t
where hpzl in ('01', '02')
)
where hphm ='京BPZ817'
-------------------
问题应该就出现在replace(('京'||hphm),'京京','京') 上面。
我只把这个车牌号的记录单独放到另外一张表,对那张表执行第一个sql查询,返回一条记录
车牌号格式不一致,有的前面带京,有的直接就是从字母开始,我的目的就是补齐前面的“京”
问题1:补齐前面的“京”还有其他办法么,我能想到的是函数function,但是记录数多的情况,速度慢。
问题2:这种莫名其妙的结果,是怎么回事呢。我
------解决思路----------------------
你明显有“重复”的车牌记录,一条hphm ='京BPZ817'、一条hphm ='BPZ817'。
这是数据的问题,必须统一车牌格式才能真正唯一。
------解决思路----------------------
你的数据库里,肯定有两条这样的数据,
京BPZ817 和 BPZ817
就是说,前面没有“京”字。