【发布时间】: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;
【问题讨论】:
标签: sql oracle function to-char
我不明白为什么这两个代码结果完全相同?我想如果我有引号它只是连接字符串。为什么不是第一个是 300.5100?我知道第二个是400.5。谢谢
Select to_char('300.5' + '100') From Dual;
Select to_char(300.5 + 100) From Dual;
【问题讨论】:
标签: sql oracle function to-char
要在 SQL 中连接字符串,您必须使用 ||。 + 仅用于添加数字。如果你没有通过'300.5' + '100' 你只会得到一个错误,例如以下是无效的 SQL:
select '300.5' + '100'
from dual;
但正如to_char() 期望一个数字作为输入参数,Oracle 隐式地将这些字符串转换为数字,然后将它们相加,就像在第二个语句中一样。
【讨论】:
串联是
'xxx' || 'yyy'
您的示例允许将文字转换为数字,然后将其视为普通数字。
【讨论】: