-1
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)...

4

4 回答 4

1

-- 检查这个查询

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
       )
于 2019-10-14T07:13:55.540 回答
0

如果您希望它们在单独的列中,您可以使用算术函数:

select t.*, floor(val) as col_left, floor(val * 100) % 100 as col_right
from (select 20.56 as val) t
于 2019-10-14T11:53:46.243 回答
0

您可以使用此查询来获得预期的输出,例如,

金额为:20.56

要获得“20”作为输出,我们可以使用此查询

SELECT FLOOR(20.56) FROM TABLE_NAME

& 为了得到准确的 '56' 作为输出,我们可以使用这个查询

SELECT FLOOR((20.56 - FLOOR(20.56))*100) FROM TABLE_NAME
于 2019-10-14T07:07:07.560 回答
0

您可以使用以下方式获取数字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

于 2019-10-14T06:49:11.703 回答