DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?相关的知识,希望对你有一定的参考价值。

DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?
SQLServer可以写:select convert(nchar(18), case(xxx as money),1) from table1 -> 显示为1,750,000.00
DB2中要怎么写呢?

参考技术A 可以先转为字符串,然后用VARCHAR_FORMAT_BIT函数,如下:
VARCHAR_FORMAT_BIT(cast(x'5493522.56'
as varchar(10) for bit data),
'x,xxx,xxx.xx')
参考技术B db2中没有符合要求的函数,而且从数据库的角度也不是必须,这个可以在外围代码中做追问

谢谢你的回答,但是难道DB2 不像Oracle或者SQLSERVER一样有任何的格式化函数来做这件事么?比如像Oracle 可以用To_CHAR()来格式化。DB2没有么?

追答

没有呀

参考技术C to_char(1000000,'999,999,999,999.99')

数字的处理方法(保留小数点两位将数字转化为千分位格式)

1:介绍几种对数字的处理技巧,废话不说,直接上代码:

 

//保留两位小数
//将1234567转换为1234567.00
function to2bits(flt) {
    if (parseFloat(flt) == flt) {
        return Math.round(flt * 100) / 100; // 到2位小数
    }
    else
        return 0;
}

//转换为千分位格式
//将1234567.00转换为1,234,567.00
function numToMoneyField(inputString) {
    regExpInfo = /(\d{1,3})(?=(\d{3})+(?:$|\.))/g;
    var ret = inputString.toString().replace(regExpInfo, "$1,");
    return ret;
}

//保留一位(两位及多位小数,并且不进行四舍五入)
function toBits(a,b){
  var res= parseInt((a/b)*10)/10;//保留两位、三位小数 同理
  return res;
}
console.log(avg(2,3));//输出结果为0.6

//保留一位(两位及多位小数,并且不进行四舍五入)
function toBits(a,b){
  //现将该除法结果保留到小数点后两位,并且不进行四舍五入,然后进行保留一位数字(根据小数点第二位进行四舍五入)
  var res= parseInt((a/b)*100)/100;//0.66保留两位、三位小数 同理 
  return res;
}
console.log(toBits(2,3).toFixed(1));//输出结果为0.7

 

以上是关于DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?的主要内容,如果未能解决你的问题,请参考以下文章

数字的处理方法(保留小数点两位将数字转化为千分位格式)

C语言编程 对变量保留两位小数 并进行四舍五入

带逗号和两位小数的数值格式

sqlServer如何把float转换为字符串,如果没有小数转换后显示整数,如果有小数显示两位小数。

EXCEL 怎样让数据只保留小数点后两位且为0的不显示

格式金额,默认保留两位小数,并格式化为千分位