SQL select 查询语句报错的原因
SQL>selectename||'年薪'||sal*12+nvl(comm,0)*12"年收入"fromempSQL>ORA-01722:无效数字...
SQL>select ename || '年薪'|| sal*12+nvl(comm,0)*12 "年收入" from emp
SQL>ORA-01722: 无效数字 展开
SQL>ORA-01722: 无效数字 展开
1个回答
展开全部
先确认 comm 是 数字列吗?
select ename || '年薪'|| to_char(sal*12+nvl(comm,0)*12) "年收入" from emp
select ename || '年薪'|| to_char(sal*12+nvl(comm,0)*12) "年收入" from emp
追问
可以了,但是为什么 单独的sal*12+nvl(comm,0)*12 就可以 在连接符后面就不行了 ?
追答
sal*12+nvl(comm,0)*12 这是数字。
ename || '年薪'|| sal*12+nvl(comm,0)*12
你觉得它会 自动 把 sal*12+nvl(comm,0)*12 转成字符吗
如果会自动转成字符的话,
oracle会不会这么理解?
ename || '年薪'|| sal*12 + nvl(comm,0)*12
岂不是 把前面的 当成数字 来 相加?
或者,你可以这么试试?
ename || '年薪'|| (sal*12+nvl(comm,0)*12 )
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询