关于decode()的问题

[复制链接]
查看11 | 回复3 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
我有一个表test,其中的name字段是char(10)型。我写了一个sql语句如下
select decode(name,'aa',1,

'bb',2,

'cc',3,

9) from test;
得到的结果都是9
但是我用
select * from test;
NAME
PID
---------- -------------------
aa
111
bb
222
cc
333
这是为什么?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
没有人知道吗?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
因为你用的是char(10),当写入的字符串小于10位长时将自动填补空格,所以字段的内容并不是'aa',而是'aa',改用varchar2(10)类型可解决这个问题
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 chensil 发布
[B]我有一个表test,其中的name字段是char(10)型。我写了一个sql语句如下
select decode(name,'aa',1,

'bb',2,

'cc',3,

9) from test;
得到的结果都是9
但是我用
select * from test;
NAME
PID
---------- -------------------
aa
111
bb
222
cc
333
这是为什么? [/B]

这样:
select decode(trim(name),'aa',1,
'bb',2,
'cc',3,
9) from test;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行