A. sql模糊查询
SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:
1、LIKE'Mc%'
将搜索以字母
Mc
开头的所有字符串(如
McBadden)。
2、LIKE'%inger'
将搜索以字母
inger
结尾的所有字符串(如
Ringer、Stringer)。
3、LIKE'%en%'
将搜索在任何位置包含字母
en
的所有字符串(如
Bennet、Green、McBadden)。
4、LIKE'_heryl'
将搜索以字母
heryl
结尾的所有六个字母的名称(如
Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n'
将搜索下列字符串:Carsen、Karsen、Carson
和
Karson(如
Carson)。
6、LIKE'[M-Z]inger'
将搜索以字符串
inger
结尾、以从
M
到
Z
的任何单个字母开头的所有名称(如
Ringer)。
7、LIKE'M[^c]%'
将搜索以字母
M
开头,并且第二个字母不是
c
的所有名称(如MacFeather)。
-------------------------------------------------
下
面这句查询字符串是我以前写的,根据变量
zipcode_key
在邮政编码表
zipcode
中查询对应的数据,这句是判断变量
zipcode_key
为非数字时的查询语句,用
%
来匹配任意长度的字符串,从表中地址、市、省三列中查询包含关键字的所有数据项,并按省、市、地址排序。这个例子比较简单,只要你理解了方法就可以写出更
复杂的查询语句。
sql
=
"select
*
from
zipcode
where
(address
like'%"
&
zipcode_key
&
"%')
or
(city
like'%"
&
zipcode_key
&
"%')
or
(province
like'%"
&
zipcode_key
&
"%')
order
by
province,city,address
存储过程中使用模糊查询的例子:
SELECT
*
FROM
Questions
where
QTitle
like
'
%
[
'+
@KeyWord
+'
]
%
'
and
IsFinish
=
@IsFinsih
语句中成对的方括号
是书写格式的关键。
B. sql如何实现多条件模糊查询
这个很简单啊
C. SQL数据库怎么实现模糊查询
实现的方法和详细的操作步骤如下:
1、第一步,按“Ctrl + N”创建一个SQL查询,如下图所示,然后进入下一步。
D. 用sql怎样实现模糊查询(delphi中)
selcet
字段
from
表名
where 字段
like
'%关键字%'实现模糊萌芽,与delphi时没有关系的.只与sql有关:具体可以参考一下sql语句的select:
%
在这里就是所有的意思,也就是说,只要包含关键字的所有记载都可以查出来.
查看原帖>>
E. 有关SQL存储过程变量模糊查询
小菜一叠啦^_^
DECLARE @CaseID varchar(256)
SET @CaseID = '125'
SELECT * FROM [tb_tableName] WHERE 字段ID LIKE '%['+@CaseID+']%'
上面这个正则查询就可以满足你的要求呀
DECLARE @CaseID varchar(256)
SET @CaseID = '19999'
SELECT * FROM [tb_aTemp] WHERE 字段ID LIKE '%['+@CaseID+']%'
TO:我用一个变量在SQL存储过程中可以返回一个结果.现在是想通过执行存储过程一次性返回多个结果,请问变量该怎么定义?
RE:
CREATE PROCEDURE SP_tableName(
@CaseID NVARCHAR(50)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE INT @Identity
SET @Identity = 0
INSERT INTO [tb_tableName] (CaseID)VALUES(@CaseID)
SET @Identity = SCOPE_IDENTITY()
IF (@Identity)>0
BEGIN
SELECT * FROM [tb_tableName] --这里根据你的查询条件,返回的多个需要的得到的字段
END
SET NOCOUNT OFF
END
GO
-- 程序调用的时候用 DataSet 来获得多个你需要的字段值,如果 DataSet 返回 0 或者抛出异常则插入数据失败
-- 带返回值的
CREATE PROCEDURE SP_tableName(
@CaseID NVARCHAR(50),
@Identity INT OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [tb_tableName] (CaseID)VALUES(@CaseID)
SET @Identity = SCOPE_IDENTITY()
IF (@Identity)>0
BEGIN
SELECT * FROM [tb_tableName] --这里根据你的查询条件,返回的多个需要的得到的字段
END
SET NOCOUNT OFF
RETURN @Identity
END
GO
-- 程序调用的时候用 DataSet 来获得多个你需要的字段值, 并可获得刚插入的自动编号输出参数
-- 如果 DataSet 返回 0 ,或者 @Identity 返回0, 或者 DataSet 抛出异常则插入数据失败
首先你要明白模糊查询和精确查询的概念,试想网络,GOOGLE的技术力量那么专业强大,其模糊查询的结果不同样也存在很多很多的冗余数据吗
CaseID like '%['+@CaseID+']%' 结果当然是贪婪模式
当然,你也可以采用如下方法使其尽可能的接近目标匹配:
%
_
[]
[^]
等等...........
如果精确查询,必须
CaseID=@CaseID
或者
CaseID IN (@CaseID)
在模糊查询的情况下,解决重复数据的唯一方法就是再增加一个(或N个)查询条件
F. sql存储过程中,模糊查询的写法
ALTER PROCEDURE [dbo].[pro_Search_keys]
@keys nvarchar(max)
AS
BEGIN
SELECT*
FROM text_Text
where Title like ‘%’+@keys+‘%’
END
G. sql 模糊查找
SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下:
1、LIKE'Mc%'
将搜索以字母
Mc
开头的所有字符串(如
McBadden)。
2、LIKE'%inger'
将搜索以字母
inger
结尾的所有字符串(如
Ringer、Stringer)。
3、LIKE'%en%'
将搜索在任何位置包含字母
en
的所有字符串(如
Bennet、Green、McBadden)。
4、LIKE'_heryl'
将搜索以字母
heryl
结尾的所有六个字母的名称(如
Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n'
将搜索下列字符串:Carsen、Karsen、Carson
和
Karson(如
Carson)。
6、LIKE'[M-Z]inger'
将搜索以字符串
inger
结尾、以从
M
到
Z
的任何单个字母开头的所有名称(如
Ringer)。
7、LIKE'M[^c]%'
将搜索以字母
M
开头,并且第二个字母不是
c
的所有名称(如MacFeather)。
-------------------------------------------------
呵呵,要完整的例句啊。下面这句查询字符串是我以前写的,根据变量
zipcode_key
在邮政编码表
zipcode
中查询对应的数据,这句是判断变量
zipcode_key
为非数字时的查询语句,用
%
来匹配任意长度的字符串,从表中地址、市、省三列中查询包含关键字的所有数据项,并按省、市、地址排序。这个例子比较简单,只要你理解了方法就可以写出更复杂的查询语句。
sql
=
"select
*
from
zipcode
where
(address
like'%"
&
zipcode_key
&
"%')
or
(city
like'%"
&
zipcode_key
&
"%')
or
(province
like'%"
&
zipcode_key
&
"%')
order
by
province,city,address"
H. SQL中如何进行模糊查询
CHARINDEX、RIGHT、LEFT
重点说下charindex
返回字符串中指定表达式的起始位置。
语法
CHARINDEX
(
expression1
,
expression2
[
,
start_location
]
)
参数
expression1
一个表达式,其中包含要寻找的字符的次序。expression1
是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2
属于字符串数据类型分类。
start_location
在
expression2
中搜索
expression1
时的起始字符位置。如果没有给定
start_location,而是一个负数或零,则将从
expression2
的起始位置开始搜索。
返回类型
int
注释
如果
expression1
或
expression2
之一属于
Unicode
数据类型(
nvarchar
或
nchar
)而另一个不属于,则将另一个转换为
Unicode
数据类型。
如果
expression1
或
expression2
之一为
NULL
值,则当数据库兼容级别为
70
或更大时,CHARINDEX
返回
NULL
值。当数据库兼容级别为
65
或更小时,CHARINDEX
仅在
expression1
和
expression2
都为
NULL
时返回
NULL
值。
如果在
expression2
内没有找到
expression1,则
CHARINDEX
返回
0。