當前位置:首頁 » 編程語言 » sql存儲實現模糊查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql存儲實現模糊查詢

發布時間: 2022-05-18 22:11:45

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。