Sql 如何在两个不同的列中存储小数点前后的值
我想将金额列分为两部分,其中一列包含小数点前的值(即20.56=20),第二列包含小数点后的值(即20.56=56).您可以使用Sql 如何在两个不同的列中存储小数点前后的值,sql,database,mysql-workbench,sql-query-store,Sql,Database,Mysql Workbench,Sql Query Store,我想将金额列分为两部分,其中一列包含小数点前的值(即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 用法:格式(N,D) 您可以查看如何使用它:您可以使用此查询获得预期的输出,如 金额为:20.56 要将“20”作为输出,我们可以使用此查
格式获取数字:
:
Name Gender Amount
Ram male 20.56
Bhavna female 78.2
darshan male 12.02
Avni female 50.366
用法:格式(N,D)
您可以查看如何使用它:您可以使用此查询获得预期的输出,如 金额为:20.56 要将“20”作为输出,我们可以使用此查询
FORMAT(your_number,xxxxx) --you can choose xxxxx whatever you want
SELECT FLOOR(20.56) FROM TABLE_NAME
&要获得精确的“56”作为输出,我们可以使用此查询
FORMAT(your_number,xxxxx) --you can choose xxxxx whatever you want
SELECT FLOOR(20.56) FROM TABLE_NAME
--检查此查询
SELECT FLOOR((20.56 - FLOOR(20.56))*100) FROM TABLE_NAME
如果要将它们分别列在不同的列中,可以使用算术函数:
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
)
不要。别这样。存储数字,并让您的查询区分数字的整数部分和小数部分。使用楼层功能。但正如@paulsm4所说,不要这样做。如果确实不想在查询中定义视图,请创建视图。