求教 SQLser里如何做到oracle里FM999,999,999,990这种格式化 10

在做sql文转换把oracle移植到SQLser上,碰到了这样的问题,oracle其中的FM999,999,990这种格式,在SQL没有东西很好对应稍微解释下:FM999... 在做sql文转换把 oracle移植到SQLser上,碰到了这样的问题,oracle其中的FM999,999,990这种格式,在SQL没有东西很好对应
稍微解释下:FM999 其9代表:如果存在数字则显示数字,不存在则显示空,其0代表:如果存在数字则显示数字,不存在则显示0,即占位符。其FM代表:删除如果是因9带来的空格,则删除之
展开
 我来答
碧血玉叶花
2015-07-17 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1715万
展开全部
你这个用的有问题,to_char(100.00, 'FM999,990.00')
如果你不加FM的话,插入之后会有空格在数字前面,以你写的100.00举例,这样你插入之后100之前就会有3个空格;假如你插入0.00的话,小数点前面那个0是显示不出来的,你看到的应该是 .00 。
你这样写是没有问题的,具体报的错误能贴出来么?
追问
我是在做移植,提下FM999,只是再说SQLserver不支持这种写,我用什么代替
ycx704389158
2019-03-22
知道答主
回答量:11
采纳率:0%
帮助的人:4.5万
展开全部
SELECT
CASE
WHEN SUBSTRING(FORMAT(charge_amt,4),-1) != 0 THEN CONVERT(charge_amt, decimal(16,4))
WHEN SUBSTRING(FORMAT(charge_amt,4),-2) != 0
AND SUBSTRING(FORMAT(charge_amt,4),-1) = 0 THEN CONVERT(charge_amt, decimal(16,3))
ELSE CONVERT(charge_amt, decimal(16,2))
END
FROM m_a_gp_agreement
我这个是模拟保留2-4位小数,to_char(100.0034,'FM99999999990.0099')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式