求SQL语句:假设表名为table。求:“地址”字段中1。所有地址字段大于6个字符的,都要;
2。如果小于6个字符,则:如果包含有数字,则要;如果不含数据,则不要;
3。地址字段中,所有包含“/”字符的,不要;背景说明:我这个是在过滤出有效的会员邮寄地址。因为有许多非法的邮寄地址,我要过滤出来。我用的是Access2003,顺便问一下,如何在ACCESS中注释SQL语句。谢谢!

解决方案 »

  1.   


    select * from table where charindex("/",add)= 0 and (len(add) > 6  or patindex('%[^0-9'add)>0)
      

  2.   


    --上面少个逗号select * from table where charindex("/",add)= 0 and (len(add) > 6  or patindex('%[^0-9',add)>0)
      

  3.   

    DECLARE @T TABLE(ID INT IDENTITY(1,1) ,ADDRESS NVARCHAR(100))
    INSERT @T SELECT N'所有地址字段大于6个字符的,都要;'
    INSERT @T SELECT N'所有123'
    INSERT @T SELECT N'地址字段中,所有包含“/”字符的,不要;'
    select * from @T where charindex('/',addRESS)= 0 and (len(addRESS) > 6  or patindex('%[^0-9]%',addRESS)>0)
    /*ID          ADDRESS                                                                                              
    ----------- ---------------------------------------------------------------------------------------------------- 
    1           所有地址字段大于6个字符的,都要;
    2           所有123(影響 2 個資料列)
    */
      

  4.   

    create table tb(addr varchar(100))
    insert tb values('a2b')
    insert tb values('aaaa')
    insert tb values('bbbbbbbbbbb')
    insert tb values('cc/d')
    go
    select * from tb where charindex('/',addr)=0 and (len(addr)>6 or addr like '%[0-9]%')/*
    addr
    ----------------------------------------------------------------------------------------------------
    a2b
    bbbbbbbbbbb(2 row(s) affected)*/
      

  5.   

    3楼:我在access的SQL查询中,提示charindex函数未定义!!!!请帮助解决,谢谢!
      

  6.   

    SQL SERVER的函数和ACCESS的不一样,ACCESS没有当然提示错误
    你去查查对应的函数是什么就好了,LIKE是有的