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: 无效数字
展开
 我来答
micro0369
2014-12-04 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4080万
展开全部
先确认 comm 是 数字列吗?

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 )
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式