sql数据的like查询条件
2008-04-02 10:39:50来源:互联网 阅读 ()
LIKE
确定给定的字符串是否和指定的模式匹配。模式能够包含常规字符和通配符字符。模式匹配过程中,常规字符必须和字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配符。和使用 = 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。假如任何参数都不属于字符串数据类型,Microsoft® SQL Server™ 会将其转换成字符串数据类型(假如可能)。wwww.chin aitpower.comIqpmA
语法
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]wwww.chin aitpower.comIqpmA
参数
match_expressionwwww.chin aitpower.comIqpmA
任何字符串数据类型的有效 SQL Server 表达式。wwww.chin aitpower.comIqpmA
patternwwww.chin aitpower.comIqpmA
match_expression 中的搜索模式,能够包含下列有效 SQL Server 通配符。wwww.chin aitpower.comIqpmA
通配符 | 描述 | 示例 |
---|---|---|
% | 包含零个或更多字符的任意字符串。 | 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_characterwwww.chin aitpower.comIqpmA
字符串数据类型分类中的任何数据类型的任何有效 SQL Server 表达式。escape_character 没有默认值,且必须仅包含一个字符。wwww.chin aitpower.comIqpmA
结果类型
Booleanwwww.chin aitpower.comIqpmA
结果值
假如 match_expression 匹配指定模式,LIKE 将返回 TRUE。wwww.chin aitpower.comIqpmA
注释
当使用 LIKE 进行字符串比较时,模式字符串中的任何字符都有意义,包括起始或尾随空格。假如查询中的比较要返回包含"abc "(abc 后有一个空格)的任何行,则将不会返回包含"abc"(abc 后没有空格)的列所在行。但是能够忽略模式所要匹配的表达式中的尾随空格。假如查询中的比较要返回包含"abc"(abc 后没有空格)的任何行,则将返回以"abc"开始且具备零个或多个尾随空格的任何行。wwww.chin aitpower.comIqpmA
由于数据存储方式的原因,使用包含 char 和 varchar 数据模式的字符串比较可能无法通过 LIKE 比较。了解每种数据类型的存储方式连同导致 LIKE 比较失败的原因十分重要。下面的示例将局部 char 变量传递给存储过程,然后使用模式匹配查找某个作者的任何著作。在此过程中,作者的姓将作为变量传递。wwww.chin aitpower.comIqpmA
CREATE PROCEDURE find_books @AU_LNAME char(20) AS SELECT @AU_LNAME = RTRIM(@AU_LNAME) '%' SELECT t.title_id, t.title FROM authors a, titleauthor ta, titles t WHERE a.au_id = ta.au_id AND ta.title_id = t.title_id AND a.au_lname LIKE @AU_LNAME
当名字中包含的字符数小于 20 时,char 变量 (@AU_LNAME) 将包含尾随空格,这导致 find_books 过程中没有行返回。由于 au_lname 列为 varchar 类型,所以没有尾随空格。因为尾随空格是有意义的,所以此过程失败。 wwww.chin aitpower.comIqpmA
但下面的示例是成功的,因为尾随空格没有被添加到 varchar 变量中:wwww.chin aitpower.comIqpmA
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 利用数据库复制技术实现数据同步更新
下一篇: SQL猜想
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash