MySQL查詢小數(shù)點(diǎn)個數(shù)是很常見的需求,可以通過以下SQL語句實(shí)現(xiàn):
SELECT LENGTH(CAST(column_name AS DECIMAL(18,4))) - LENGTH(TRUNCATE(CAST(column_name AS DECIMAL(18,4)),0)) - 1 AS decimal_count FROM table_name;
其中,column_name
是要查詢的列名,table_name
是要查詢的表名。這條語句的實(shí)現(xiàn)原理是將查詢列通過CAST
轉(zhuǎn)換為DECIMAL類型,并指定精度為18位,其中小數(shù)部分的位數(shù)為4位,然后通過LENGTH
函數(shù)獲取整個DECIMAL類型的長度和整數(shù)部分的長度,再通過TRUNCATE
函數(shù)截取整數(shù)部分得到小數(shù)部分的長度,最后兩個長度相減再減一即為小數(shù)點(diǎn)的個數(shù)。
需要注意的是,如果查詢列中不存在小數(shù),則小數(shù)點(diǎn)個數(shù)為0。如果查詢列中存在多個小數(shù)點(diǎn),則只計(jì)算最后一個小數(shù)點(diǎn)后的位數(shù)。
上一篇css3發(fā)光過渡
下一篇css3半透明遮蓋