字段a1我想取得的值
United States
USA
US
[United States]
U.S.A
U.S.
怎么写个通配符表达式?
1.where a1 like 'United States' 
       or
a1 like 'USA'............太丑了
2.where a1 in ('United States' ,'USA','US','[United States]','U.S.A','U.S.')太罗索了
3.patindex  ,charindex好像也比较丑.
最好能有个  like '%['United States' ,'US','U.S']%' 这样的么?说白了  就是用[]能不能连接[串1,串2,串3,.....].        []查了下资料只能枚举单个字符,如何
枚举多个字符做模糊查询?谢谢大家

解决方案 »

  1.   

    where col like '%U%' and like '%S%'
      

  2.   

    where col like '%U%' and col like '%S%'molify
      

  3.   

    CHARINDEX('U',COL)>0 AND CHARINDEX('S',COL)>0
    呵呵不丑呀!
      

  4.   

    like '%U%S%'
    其实我还有很多值 比如出现u1s1怎么办,我就要
    United States 
    USA 
    US 
    [United States] 
    U.S.A 
    U.S. 
    另外我的根本意思就是想问,到底[]能不能做串的枚举
    谢谢大家了
      

  5.   

    这个虽然不靓, 但苗条, 君子原求吗?where a1 like '[U[][NSU.]%'
      

  6.   

    --77的有观赏性:
    CHARINDEX('U',COL)>0 AND CHARINDEX('S',COL)>0
      

  7.   

    其实丑就丑点,工作能完成也就罢了,只是自己喜欢寻根问底
    为什么[]一个集合运算符号在模糊查询符 like 里不能建立一个串的枚举机制,只提供单个字符的枚举
    如果是这样,到底是什么使得sql的设计者,比如ms sqlserver不愿动举手之劳,提供一个普遍会碰到的问题的
    方便解决之道,而让大家  like表达式 or/and like表达式  颇费周折......真的有这么大的开销???大到
    有sqlserver不承之重??
      

  8.   

    to:Tomzzu  谢谢
    where a1 like '[U[][NSU.]%'消息 102,级别 15,状态 1,第 1 行
    '[U[][NSU.]%' 附近有语法错误。
    if  [U[][NSU.]% 成立
    则内容=U[][NSU.  但是内容未见有   串1 分割符号 串2 分割符号...
    疑问: 如何能取出各串匹配
    若仍采用默认单字符分割方式,即没有分割符,仍只能区分单个字符,如何实现串的枚举?
      

  9.   

    最后告别了like
    采用
     in (''United States USA'', ''US'',''[United States]'',''U.S.A'',''U.S.'') ';
    这个很无奈.不得不列出所有值,放弃了通配这个机制...
    通配([])和串枚(like )举看来真的是sqlserver的鱼和熊掌???