ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 97

97

原创 Linux操作系统 作者:simkyo 时间:2013-08-29 13:43:17 0 删除 编辑
create table tt(A1 CHAR(2) , A2 VARCHAR2(2)) ;
INSERT INTO TT VALUES('A','A') ;
insert into tt values('A','A ') ;
COMMIT ;
select rowid,a1,a2 from tt;
select length(a1),length(a2) from tt;
select rowid,a1,a2 from tt where a1='A' ;  --把常量A后面加上空格,然后和A1比较,char规则
select rowid,a1,a2 from tt where a1='A  ' ;--把常量A后面去掉1空格,然后和A1比较,char规则
select rowid,a1,a2 from tt where a2='A' ;-- 直接比较,varchar2规则
select rowid,a1,a2 from tt where a2='A ' ;-- 直接比较,varchar2规则
select rowid,a1,a2 from tt where a1=a2 ; -- 只能匹配一条结果,按照varchar2规则
select  rowid,decode(a1,'A','AAAA','BBBB') FROM TT ; -- 函数 此时把常量A按照varchar2规则比较,没有匹配结果
select  rowid,decode(a1,'A  ','AAAA','BBBB') FROM TT ;-- 函数 此时把常量A按照varchar2规则比较,没有匹配结果
select rowid,case a1 when 'A' then 'AAA' else 'BBB' end from tt ; -- 表达式 此时把常量A按照char规则比较
select rowid,case a1 when 'A ' then 'AAA' else 'BBB' end from tt ;-- 表达式 此时把常量A按照char规则比较
select  rowid,case a2 when 'A' then 'AAA' else 'BBB' end from tt ;
总结,char与常量比较时,按照char 规则,把常量后补充空格比较。
      char与varchar2比较时,按照varchar2规则。
      char用函数时,按照varchar2 规则,与表达式case比较时,按照char规则。
      char与表达式minus ,intersect时,按照varchar2规则,如:
      create table t1(name char(10)) ;
create table t2(name char(20)) ;
begin
for i in 1..5 loop
        insert into t1 values(i) ;
        insert into t2 values(i) ;
end loop ;
commit;
end ;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12961536/viewspace-769575/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 96
下一篇: 98
请登录后发表评论 登录
全部评论

注册时间:2013-06-20

  • 博文量
    193
  • 访问量
    138752