字段id是Varchar2类型,
例如
id1 = "123456789012345678"
id2 = "123456789012345678"
使用如下语句:
select * from  t
where length((t.id))>18
结果不显示id2,
试问修改上面的语句怎么显示id2的结果啊?

解决方案 »

  1.   

    SQL> create table a
      2  ( a1 char(50),
      3     a2 varchar2(50));表已创建。SQL> insert into a values 
          ('123456789012345678',
           '123456789012345678');已创建 1 行。SQL> commit;提交完成。SQL> select length(a1),length(a2) from a;LENGTH(A1) LENGTH(A2)    
    ---------- ----------   
            50         18   SQL> select length(trim(a1)),length(trim(a2) from a;
    select length(trim(a1)),length(trim(a2) from a
                                            *
    ERROR 位于第 1 行: 
    ORA-00907: 缺少右括号 
    SQL> select length(trim(a1)),length(trim(a2)) from a;LENGTH(TRIM(A1)) LENGTH(TRIM(A2))        
    ---------------- ----------------           
                  18               18
      

  2.   

    我是想怎么将id2的结果删除,并且保留id1,因为length()的结果一样,所以无从下手
      

  3.   

    SQL> create table a
      2  ( id varchar2(50) ) ;表已创建。SQL> insert into a values
      2   ('123456789012345678');已创建 1 行。SQL> insert into a values
      2   ('123456789012345678');已创建 1 行。SQL> commit;提交完成。SQL> select id,length(id) from a;ID                                                 LENGTH(ID)                   
    -------------------------------------------------- ----------                   
    123456789012345678                                         18                   
    123456789012345678                       18                   SQL> select id,vsize(id) from a;ID                                                  VSIZE(ID)                   
    -------------------------------------------------- ----------                   
    123456789012345678                                         18                   
    123456789012345678                       36
      

  4.   

    select * from  t
    where lengthb((t.id))>18
    用lengthb()判断全角