select To_char(1,'99') from dual 求解

hckxzy 2011-03-25 04:04:00
select length(To_char(1,'99')) from dual
为什么上面结果是3,而不是2.
...全文
180 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hckxzy 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 doer_ljy 的回复:]

使用9的话,
会根据9的个数,补空格。
当然还会加上一个+/-的符号占位。
所以是一个符号空格加上一个因为9的个数补充的空格加上一个【1】一共是三位。
看这段话,这是oracle光访文档
-------------------------
Returns value with the specified number of digits with a leading space if……
[/Quote]
谢谢,说的很是
doer_ljy 2011-03-25
  • 打赏
  • 举报
回复
也就是说如果是
select 'XX' || to_char(-1,'99') from dual
结果:XX -1

select 'XX' || to_char(-10,'99') from dual
结果:XX-10

select 'XX' || to_char(10,'99') from dual
结果:XX 10
doer_ljy 2011-03-25
  • 打赏
  • 举报
回复
使用9的话,
会根据9的个数,补空格。
当然还会加上一个+/-的符号占位。
所以是一个符号空格加上一个因为9的个数补充的空格加上一个【1】一共是三位。
看这段话,这是oracle光访文档
-------------------------
Returns value with the specified number of digits with a leading space if positive or with a leading minus if negative.
Leading zeros are blank, except for a zero value, which returns a zero for the integer part of the fixed-point number.
hckxzy 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luoyoumou 的回复:]

-- 因为前面有两个“前导空格”
[/Quote]
不明白,to_char(1,'99');不是在‘9’对应有数字的地方显示数字,没有数字的地方显示空格,为什么,显示了两个空格。求解?
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luoyoumou 的回复:]
eygle@SZTYORA> select 'luoyoumou'||to_char(1,'99') from dual;

'LUOYOUMOU'||TO_CHAR(1,'
------------------------
luoyoumou 1

已选择 1 行。

-- 这样看,你就明白啦!
[/Quote]
呵呵
刚查到了

楼主看看
http://hi.baidu.com/luanjy/blog/item/8cc47089eb1c0ab50f244438.html
luoyoumou 2011-03-25
  • 打赏
  • 举报
回复
-- 因为前面有两个“前导空格”
luoyoumou 2011-03-25
  • 打赏
  • 举报
回复
eygle@SZTYORA> select 'luoyoumou'||to_char(1,'99') from dual;

'LUOYOUMOU'||TO_CHAR(1,'
------------------------
luoyoumou 1

已选择 1 行。

-- 这样看,你就明白啦!

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧