ACCESS的通配符和SQL SERVER的通配符比较
===================================================
ACCESS库的通配符为:
*
?
SQL Server中的通配符为:
% 与任何个数的字符匹配
_ 与单个字符匹配
正文
我今天在写个页面的时候,也很郁闷,表中明明有记录,但在ASP里就是搜索不到,理论的sql语句如下:
Select * FROM t_food Where t_food.name like '*苹果*'
去GOOGLE搜搜发现,ASP中模糊查询要这样写:
Select * FROM t_food Where t_food.name like '%%苹果%%'
必须是“%”,而且要两个。大家多注意。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SQL查询语句通配符问题
在Access中用SQL语句进行数据查询时,用了通配符*进行查询。语句如下:
Select * from normal where bookname like '*h*'
在Access的SQL视图中试验没有任何问题,工作一切正常。于是将SQL语句写入到C#程序中,结果一到查询语句时就出错跳出,百思不得其解。于是查找Access帮助文件,找到如下帮助:
////////////////////////////////////////////////////////////
将字符串表达式与 SQL 表达式中的模式进行比较。
语法
expression Like "pattern"
Like 运算符语法包含以下部分:
部分说明
expression 在 Where 子句中使用的 SQL 表达式。
pattern 与 expression 进行比较的字符串文字。
说明
可以通过 Like 运算符来查找与所指定的模式相匹配的字段值。对于 pattern,可以指定完整的值(例如 Like "Smith"),也可以使用通配符来查找某个范围内的值(例如 Like "Sm*")。
在表达式中,可以使用 Like 运算符来比较字段值与字符串。例如,如果在 SQL 查询中输入 Like "C*",那么该查询将返回所有以字母 C 开头的字段值。在参数查询中,可以提示用户键入要搜索的模式。
下面的示例返回以字母 P 开头并且后面为 A 到 F 之间任何字母以及三个数字的数据:
Like "P[A-F]###"
下表展示了如何通过 Like 来测试不同模式的表达式。
匹配类型
模式匹配
(返回 True)不匹配
(返回 False)
多个字符 a*a aa, aBa, aBBBa aBC
特殊字符 a
a a*a aaa
多个字符 ab* abcdefg, abc cab, aab
单个字符 a?a aaa, a3a, aBa aBBBa
单个数字 a#a a0a, a1a, a2a aaa, a10a
字符范围 [a-z] f, p, j 2, &
范围之外 [!a-z] 9, &, % b, a
非数字值 [!0-9] A, a, &, ~ 0, 1, 9
复合值 a[!b-m]# An9, az0, a99 abc, aj0
参考地址:http://office.microsoft.com/zh-cn/assistance/HP010322532052.aspx
///////////////////////////////////////////////////////////