MySQL查詢小數點位數


怎么查詢某個字段中小數有幾位?

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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM