Oracle SQL TO_CHAR 函数返回值

Posted

技术标签:

【中文标题】Oracle SQL TO_CHAR 函数返回值【英文标题】:Oracle SQL TO_CHAR Function return values 【发布时间】:2017-12-13 22:36:13 【问题描述】:

我不明白为什么这两个代码结果完全相同?我想如果我有引号它只是连接字符串。为什么不是第一个是 300.5100?我知道第二个是400.5。谢谢

Select to_char('300.5' + '100') From Dual;

Select to_char(300.5 + 100) From Dual;

【问题讨论】:

【参考方案1】:

要在 SQL 中连接字符串,您必须使用 ||+ 仅用于添加数字。如果你没有通过'300.5' + '100' 你只会得到一个错误,例如以下是无效的 SQL:

select '300.5' + '100'
from dual;

但正如to_char() 期望一个数字作为输入参数,Oracle 隐式地将这些字符串转换为数字,然后将它们相加,就像在第二个语句中一样。

【讨论】:

【参考方案2】:

串联是

'xxx' || 'yyy'

您的示例允许将文字转换为数字,然后将其视为普通数字。

【讨论】:

以上是关于Oracle SQL TO_CHAR 函数返回值的主要内容,如果未能解决你的问题,请参考以下文章

将 Oracle SQL 转换为 OBIEE Evaluate/TO_CHAR 函数

oracle sql TO_CHAR 函数在某些情况下添加尾随空白

ORACLE创建自定义函数返回varchar类型

oracle 当做一个函数的时候提示没有足够的值

oracle to_char 语法

如何在不使用 to_date /to_char 函数的情况下比较 oracle sql 中的日期?