SQL函式實現綜合模糊查詢

2021-07-10 23:51:26 字數 1694 閱讀 5236

--

建立函式

create

function [dbo].[m_fuzzyquery_v1](

@str nvarchar

(2000) )

returns

nvarchar

(2000) as

begin

declare @count int

,@i int;

declare @newchar nvarchar

(200),@nn nvarchar

(300),@hh nvarchar

(200)

set @count=

len(@str);

set @i=1;

set @nn='';

while @i<@count+1

begin

set @newchar=

substring

(@str,@i,1)+

'%'

set @nn=@nn+@newchar;

set @i=@i+1;

endset @hh=

'%'+@nn

return @hh

end --

測試資料

declare @table table

(connect varchar

(30))

insert

into @table

select

'我愛程式

'union

all

select

'我的程式生活

'union

all

select

'絕對無聊的生活

'union

all

select

'活得好累

'union

all

select

'程式設計師的生活

'union

all

select'序論

'union

all

select'生機

'union

all

select

'生活雜誌

'union

all

select

'我只是隨便寫寫

'union

all

select

'真的是要來搜尋的

'union

all

select

'程式設計師一生的活路'

--普通的模糊查詢

select

*from @table where connect like

'%程式生活%'

--執行結果 /*

connect

------------------------------

我的程式生活 */

--應用函式查詢

select

*from @table where connect like

(select dbo.[m_fuzzyquery_v1](

'程式生活'))

--執行結果 /*

connect

------------------------------

我的程式生活

程式設計師的生活

程式設計師一生的活路 */

綜合模糊查詢

建立函式 create function dbo m fuzzyquery v1 str nvarchar 2000 returns nvarchar 2000 as begin declare count int i int declare newchar nvarchar 200 nn nvar...

sql模糊查詢實現組合查詢

資料庫程式設計中經常遇到組合查詢的情況。例如,某公司資料庫裡有一張存放使用者資訊的表user info,它有多個字段 userid,id,name,age,address。其中userid是表的主碼,表示使用者的使用者號,該使用者號對每個使用者都是唯一的 id表示使用者省份證號。此時要對使用者資訊進...

SQL語句實現模糊查詢

我們可以在where子句中使用like來達到模糊查詢的效果 在where子句中,可以對datetime char varchar欄位型別的列用like子句配合萬用字元選取那些 很像.的資料記錄,以下是可使用的萬用字元 零或者多個字元 單一任何字元 下劃線 特殊字元 在某一範圍內的字元,如 0 9 或...