Name Gender Amount
Ram male 20.56
Bhavna female 78.2
darshan male 12.02
Avni female 50.366
我想将金额列分为两部分,其中一列包括小数点前值(即 20.56=20),第二列包括小数点后值(即 20.56=56)...
Name Gender Amount
Ram male 20.56
Bhavna female 78.2
darshan male 12.02
Avni female 50.366
我想将金额列分为两部分,其中一列包括小数点前值(即 20.56=20),第二列包括小数点后值(即 20.56=56)...
-- 检查这个查询
select amount, decode (pos,0,amount,substr(amount,1,pos-1)) as before_decimal ,
decode(pos,0,0,substr(amount,pos+1,length(amount))) as after_decimal
from (
select instr((substr(amount,1,length(amount))),'.') as pos,amount
from table_name
)
如果您希望它们在单独的列中,您可以使用算术函数:
select t.*, floor(val) as col_left, floor(val * 100) % 100 as col_right
from (select 20.56 as val) t
您可以使用此查询来获得预期的输出,例如,
金额为:20.56
要获得“20”作为输出,我们可以使用此查询
SELECT FLOOR(20.56) FROM TABLE_NAME
& 为了得到准确的 '56' 作为输出,我们可以使用这个查询
SELECT FLOOR((20.56 - FLOOR(20.56))*100) FROM TABLE_NAME
您可以使用以下方式获取数字FORMAT
:
FORMAT(your_number,xxxxx) --you can choose xxxxx whatever you want
用法:FORMAT (N, D)
你可以看看如何使用它:https ://www.w3resource.com/mysql/string-functions/mysql-format-function.php