怎么查詢某個字段中小數有幾位?
MySQL數據庫:
通過下面sql就可以查出來,有2位col*100,有3位col*1000,一次類推;
select * from ws_inventory_item where real_quantity*1000 - floor(real_quantity*1000) > 0
備注:floor:函數只返回整數部分,小數部分舍棄。
Oracle數據庫:
select ltrim('124532.62879'-floor('124532.62879'),'0.') from dual; select length(66695) from dual;
這兩條SQL結合起來,就可以查詢出小數點后邊部分的小數位數、在Oracle中很經典,也很實用!
下面這個做法也還是經典(推薦使用):
比如有一張表的某字段是 number(10,4)的,但是大多數是3位小數,如何把是4位小數的結果查詢出來:
select * from tables where (col- trunc(col,3) ) <>0 ; select length('21221.3410') - instr('21221.3410','.') from dual;
最后自己總結的SQL如下:
---查詢小數點所在的位置
select instr('12563.26530','.') from dual;
---查詢小數部分
select substr('12563.26530',instr('12563.26530','.')+1) from dual;
---查詢小數部分的長度
select length(substr('12563.26530',instr('12563.26530','.')+1)) from dual;