dbc连接SQL2000成功后,只能查询数值型字段,不能查询字符型字段,请高手指点!!

SQL数值字段查询如下:Selecttablefromcolumn*111字符串模糊匹配查询:*Fromthetableas'%'+'待查询字符'+'%'数值字段查询与字符串查询的区别是数字两边不需要单引号并且字符串两边必须有单引号,单引号是英文输入法宽度的一半。

在sql语句中,like所有的用法

在SQL结构化查询语言中,equal语句起着重要的作用。

类似语句的语法格式是:selectfrom表名where字段名就像对应的值(子字符串),主要针对字符字段,作用是在字符字段列中,检索对应的子字符串

A:%任何包含零个或多个字符的字符串:

1.例如,“Mc%”将搜索以字母Mc开头的所有字符串(例如McBadden)。

2.与“%inger”一样,所有以字母inger结尾的字符串(例如Ringer、Stringer)都会被搜索。

3.像'%en%'会搜索任意位置包含字母n的所有字符串(例如Bennett、Green、McBaden)。

B:_(下划线)任何单个字符:

例如“_Herryl”将搜索以字母Heryl结尾的所有六个字母的名称(例如Cheryl、Sherrill)。

C:[]指定范围([a-f])或集合([abcdef])内的任意单个字符:

1,例如'[CK]ars[eo]n'将搜索以下字符串:carson、carson、carson和carson(如carson)。

2.字符串“[M-Z]Inger”将搜索以Inger结尾并以M到Z中的任意一个字母开头的所有名称(例如Ringer)。

D:[^]任何不属于指定范围([a-f])或集合([abcdef])的单个字符:

例如'M[^c]%'将搜索所有以字母M开头且包含除c以外的字母的名称(例如MacFeather)。

E:*这个类似于DOS命令中的通配符,代表多个字符:

c*c代表cc、cBc、cbc、cabdfec等字符。

F:?和DOS命令一样吗?通配符,代表单个字符:

b?b代表brb、bFb等。

G:#和上面几乎一样,除了它的世代只能代表一个数字。
k#k代表k1k、k8k、k0k。

下面举个例子:

例1、查询包含“明”字的姓名字段。

select*fromtable1wherenamelike'%明%'

示例2,查询以“李”字开头的姓名字段。

select*fromtable1wherenamelike'李*'

示例3,查询姓名字段中包含数字。

select*fromtable1wherenamelike'%[0-9]%'

示例4、查询小写字母的name字段。

select*fromtable1wherenamelike'%[a-z]%'

示例5、查询不包含数字的姓名字段。

select*fromtable1wherenamelike'%[!0-9]%'

上面的例子可以列出哪些值就很清楚了。
但在这里,我们重点关注通配符“*”和“%”之间的区别。

很多朋友会问为什么我用“%”而不是“*”来表示上面查询中的所有字符呢?我们来看看下面这个例子的结果:

select*fromtable1wherenamelike'*明*'

select*fromtable1wherenamelike'%明%'

Everyone你会注意到,前面的第一条语句列出了所有记录,而最后一条记录列出了名称字段中带有“ming”的记录,因此,当我们创建字符字段包含子字符串的查询时,最好不要使用“%”使用碰巧不使用“*”,仅在开头或仅在末尾使用“*”,并且两端的任何字符都不能用“*”替换。