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。