欢迎投稿

今日深度:

to_char() 多了个字符

to_char() 多了个字符


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')) 就行了

www.htsjk.Com true http://www.htsjk.com/shujukunews/399.html NewsArticle to_char() 多了个字符 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...
相关文章
    暂无相关文章
评论暂时关闭