select accode from asset where (accode like 'accode___')
上面的语句中where后面的条件是没起作用的。我主要是查找字段accode 为本是字段accode再加三位的数据,高手帮忙。谢谢了

解决方案 »

  1.   

    这样查询出来不全是空嘛?不懂这样的需求----------------------------------------
    查找字段accode 为本是字段accode再加三位的数据
    ???
      

  2.   


    select accode from asset where accode like 'accode%' ;
      

  3.   


    select accode from asset where accode like 'accode%' and length(accode)=9
    加长度条件限制就可以
      

  4.   

    这样是全为空的,应为like后会把accode当作字符串看了
    不会当作字段看待
      

  5.   

    select accode from asset where accode like 'accode%' and length(accode)=9;
      

  6.   

    语法没有问题,只能看看你数据库 accode 字段是否有accod+三位的数据了
      

  7.   

    你指的是其他字段是accode再加三位的数据吧?
      

  8.   

    语法是没问题。可是你的like后面 accode% 这个中的accode是个字符串不是字段。我要求的就是要在原字段上再加三位
      

  9.   

    select a.accode
      from asset a, asset b
     where instr(a.accode, b.accode) = 1
       and length(a.accode) = length(b.accode) + 3
      

  10.   

    试试这个。查出是accode字段里的值再加三位的值
      

  11.   


    明显有逻辑错误。假设你的accode的值是ABC,你要accode like 'ABC___', 当然取不出数据了accode这个字段会自已加上个3位吗?我看永远都不会,条件不成立
      

  12.   

    再问下高手,如果我要求b.accode是a.accode的子字符串,且两个不能相同,instr该如何写。
      

  13.   

    select accode from asset where accode like 'accode' AND SUBSTR(accode, length('accode'), 3) >= 1 and SUBSTR(accode, length('accode'), 3) <= 999對字段的後三位進行截取處理就可以
      

  14.   

    我的已经是B的子串了。因为还有个条件length=length+3;
    如果直接判断b.accode是a.accode的子字符串,且两个不能相同
    instr(a.accode, b.accode)>0 and a.accode<>b.accode;
      

  15.   

    select accode from asset where substr(accode,1,6)  = 'accode' AND SUBSTR(accode, length('accode'), 3) >= 1 and SUBSTR(accode, length('accode'), 3) <= 999 
      

  16.   


    --参考一下:
    SQL> select tname,cname from col where cname like '%ME%';TNAME                          CNAME
    ------------------------------ ------------------------------
    EMPLOYEE                       FIRST_NAME
    EMPLOYEE                       LAST_NAME
    EMPLOYEE1                      FIRST_NAME
    EMPLOYEE1                      LAST_NAME
    IP_ADDRESS                     USERNAME
    IP_ADDRESS                     LOGON_TIME
    RECORD                         MULTIME
    STUDENT                        NAME
    T                              USERNAME
    TABCOPY                        NAME
    TABCOPY1                       NAME
    TABCOPY3                       NAME
    TABCOPY4                       NAME
    TABLEA                         NAME
    TABLEA                         TIME
    TABLEB                         TIME
    TABLEC                         CNAME
    TABLED                         SOMETH
    TAB_C                          NAME
    TONE                           TNAMETNAME                          CNAME
    ------------------------------ ------------------------------
    TOPIC                          USERNAME
    XS                             USERNAME
    XS                             PUSERNAME23 rows selectedSQL> 
      

  17.   

    这个是字长+3的
    SQL> select a.accode, b.accode
      2    from asset a, asset b
      3   where instr(a.accode, b.accode) = 1
      4     and length(a.accode) = length(b.accode) + 3
      5  ;
     
    ACCODE                                                                           ACCODE
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    001001                                                                           001
    001001003                                                                        001001
    001001002                                                                        001001
    001001002001                                                                     001001002
    这个是包含的:
    SQL> select a.accode, b.accode
      2    from asset a, asset b
      3   where instr(a.accode, b.accode) > 0
      4     and a.accode <> b.accode;
     
    ACCODE                                                                           ACCODE
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    001001                                                                           001
    001001002                                                                        001
    001001002                                                                        001001
    001001002001                                                                     001
    001001002001                                                                     001001
    001001002001                                                                     001001002
    001001003                                                                        001
    001001003                                                                        001001
    001002001001                                                                     001
    001002001001                                                                     001001
     
    10 rows selected
     
      

  18.   

    select b.accode from asset a,asset b where a.accode like b.accode||'%' and length(a.accode)=length(b.accode)+3;
      

  19.   

    你的表名和字段命名要分开,写的东西要有可读性。先用%匹配,然后length函数控制长度,就可以了吧。
      

  20.   

    select accode from asset where (accode like 'accode___%') 
      

  21.   

    我的select substr(accode,1,9) from asset where accode like 'accode%'