phoenix的写法对数据类型限制比较严格,对于字符串类型,需要使用to_number将字符串转换成数字,但是在使用过程中,发现一个很奇怪的现象,那就是以整10为倍数的数据,比如说100,就会被显示成科学计数法。
下面详细讲一下具体的问题。
首先,我的表在设计的时候,采用字符串来保存ID,但是另外一个表是采用BIGINT类型存储的,所有需要对该字段进行转换,转成数组,写法为:to_number(TRIM(f_test),'###0')。
这上面,'###0'表示整形。具体的写法如下:
select f_test1,f_test2,to_number(TRIM(f_test3),'###0'),to_number(f_test4,'#'),to_number(f_test5),to_number('100','##########E0') from dwb.t_test where f_test4 = 3000700
在使用过程中,发现以整10为倍数的数据,比如说100,就会被显示成科学计数法。不管怎么设置格式,都无法改变。
后来才发现,这是Phoenix的一个bug,跟sql的写法无关,在正常使用中,并无发现异常情况,如果大家发现无法正常显示,可以使用to_char将数据转成字符串再显示出来就行。