Oracle SQL Plus运算符(+)默认情况下将字符转换为数字[重复]

23c0lvtd  于 2023-05-16  发布在  Oracle
关注(0)|答案(1)|浏览(117)

此问题已在此处有答案

What is the string concatenation operator in Oracle?(6个回答)
2小时前关闭
为什么下面的查询给出的输出是3而不是12?我还在连接两个字符,为什么输出是数字?

select '1' + '2' from dual;
zengzsys

zengzsys1#

在Oracle中,+是加法运算符,||是字符串连接运算符。
如果你想连接字符串,那么用途:

select '1' || '2' from dual;

其输出:
| “% 1”“||% 2”|
| --------------|
| 十二岁|
如果你想把两个数字相加,那么用途:

select 1 + 2 from dual;

其输出:
| 一加二|
| --------------|
| 三|
如果您用途:

select '1' + '2' from dual;

然后它被隐式转换为:

select TO_NUMBER('1') + TO_NUMBER('2') from dual;

因为加法运算符接受数值操作数(而不是字符串操作数)。
fiddle

相关问题