新同事遇到个问题,我想着写出来给遇到相同问题的人一个思路
select col1
from table1
where col1<100
错误原因是col1是字符串类型的,与数字比较要转换类型,而这一列数据包含了空串和null,知道原因我们把不符合转换要求的数据单独做处理即可。
处理方式:
1.在select中处理,常规处理方式,但是我同事说他做的目前只能在where
中处理
select col1 from (
select case when col1 is null or col1="" then 0 else col1 end col1
from table1
)
where col1<100
2.where中单独处理,
select col1
from table1
where
col1 is not null
and col1 !=''
and col1<100
select col1
from table1
where
${other condition} and (
col1 is null
or col1 =''
or col1<100
)