LIKE 确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配符。与使用 = 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。如果任何参数都不属于字符串数据类型,Microsoft® SQL Server™ 会将其转换成字符串数据类型(如果可能)。语法 match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]参数 match_expression任何字符串数据类型的有效 SQL Server 表达式。patternmatch_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符。通配符 描述 示例 % 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。 _(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。 [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。 [^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。 escape_character字符串数据类型分类中的所有数据类型的任何有效 SQL Server 表达式。escape_character 没有默认值,且必须仅包含一个字符。
select * from 表名 where 字段名 like '%[ABCDEFGH]%'
select * from 表 where 字段名 in('A','B','C','D','E','F','G','H')
同意libin_ftsafe(子陌红尘) 也可以: select * from 表名 where patindex('%[ABCDEFGH]%',字段名)>0
同意revery(rever)!这样更简便些!
如果你有字符是有规则的 ABCDEFGH 可以用上面的办法! select * from 表名 where 字段名 like '%[ABCDEFGH]%' 如果没有规则的话就得一个个的来了select * from 表 where 字段名 in('A','B','C','D','E','F','G','H')or select * from 表 where (字段名 like '%A%' or 字段名 like '%B%' or 字段名 like '%c%' )
错了 select * from 表 where 字段名 in('A','B','C','D','E','F','G','H') 是错误的!不好意思!
select * from 表名 where 字段名 like '%[ABCDEF]%' 或 select * from 表名 where 字段名 like '%[A-F]%'
to firefox_1983:当然是错误的. 人家字段也不是只有一个字符.用那种in的方法也可以. 你可以写一个UDF,通过一个循环来做.不过,总的来说river的方法算是比较好的.
确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配符。与使用 = 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。如果任何参数都不属于字符串数据类型,Microsoft® SQL Server™ 会将其转换成字符串数据类型(如果可能)。语法
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]参数
match_expression任何字符串数据类型的有效 SQL Server 表达式。patternmatch_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符。通配符 描述 示例
% 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。
_(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。
escape_character字符串数据类型分类中的所有数据类型的任何有效 SQL Server 表达式。escape_character 没有默认值,且必须仅包含一个字符。
也可以:
select * from 表名 where patindex('%[ABCDEFGH]%',字段名)>0
select * from 表名 where 字段名 like '%[ABCDEFGH]%'
如果没有规则的话就得一个个的来了select * from 表 where 字段名 in('A','B','C','D','E','F','G','H')or select * from 表 where (字段名 like '%A%' or 字段名 like '%B%' or 字段名 like '%c%' )
select * from 表 where 字段名 in('A','B','C','D','E','F','G','H')
是错误的!不好意思!
或
select * from 表名 where 字段名 like '%[A-F]%'
人家字段也不是只有一个字符.用那种in的方法也可以.
你可以写一个UDF,通过一个循环来做.不过,总的来说river的方法算是比较好的.
where a like '%@a%'