CASE a when 1 then 'A'报错求解。Orz OLing

Zeroing-X 2011-07-25 03:04:52
SELECT CASE p.a WHEN 1 THEN '鸟人' END FROM p 出错
提示:数据类型不一致:应为NCHAR,但却获得NUMBER

数据类型 p.a,nvarchar2(40),optional
a中有数据1,2,3,4,5,6,8没了

SELECT p.a FROM p WHERE p.a = 1 就可以出来

是应把 CASE p.a WHEN 1 的1换别的吗? 换'1'也不对
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zeroing-X 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 horizonlyhw 的回复:]
如果没有别的值 那就是你的 数字前面或者后面有空格。

SELECT CASE to_number(trim(p.a)) WHEN 1 THEN '鸟人' END FROM p 试试
[/Quote]
可行
为何 WHERE p.a=1 就可以?
且 SELECT CASE p.a WHEN '1' THEN 'AA' END FROM P 也不行。。 就算是
horizonlyhw 2011-07-25
  • 打赏
  • 举报
回复
如果没有别的值 那就是你的 数字前面或者后面有空格。

SELECT CASE to_number(trim(p.a)) WHEN 1 THEN '鸟人' END FROM p 试试
BenChiM888 2011-07-25
  • 打赏
  • 举报
回复

SELECT CASE WHEN p.a = '1' THEN '鸟人' ELSE '' END FROM p;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧