sp.param_value nvarchar2(200);
select sp.param_code, to_number(sp.param_value), sp.param_value,length(param_value)
from sys_service_param sp
where sp.param_type_code = 'bank'
and sp.param_value = to_char(0.78,'0.00')
为什么to_char不行呢?
select sp.param_code, to_number(sp.param_value), sp.param_value,length(param_value)
from sys_service_param sp
where sp.param_type_code = 'bank'
发现 param_value 字符长度为4 0.78=4
to_char 格式的是5个字符
SQL> select length(to_char(0.78,'0.00')),to_char(0.78,'0.00') from dual;
LENGTH(TO_CHAR(0.78,'0.00')) TO_CHAR(0.78,'0.00')
---------------------------- --------------------
5 0.78
不带格式的是3个字符
SQL> select length(to_char(0.78)),to_char(0.78) from dual;
LENGTH(TO_CHAR(0.78)) TO_CHAR(0.78)
--------------------- -------------
3 .78
难怪查不到数据呢!!
SQL> select length('0.78') from dual;
LENGTH('0.78')
--------------
4
而这种直接单引号就行
所以 and sp.param_value = trim(to_char(0.78,'0.00')) 就行了