實(shí)現(xiàn)按關(guān)健字模糊查詢,并按匹配度排序的SQL語句
更新時(shí)間:2009年09月21日 19:07:41 作者:
SQL語句實(shí)現(xiàn)按關(guān)健字模糊查詢,并按匹配度排序
復(fù)制代碼 代碼如下:
IF OBJECT_ID('TB')IS NOT NULL DROP TABLE TB
GO
CREATE TABLE tb (ID INT IDENTITY(1,1),VALUE NVARCHAR(100))
INSERT tb SELECT N'中國'
UNION ALL SELECT N'中國人'
UNION ALL SELECT N'中國人民'
UNION ALL SELECT N'日本'
UNION ALL SELECT N'日本人'
UNION ALL SELECT N'我的心中有人姑娘'
UNION ALL SELECT N'人民網(wǎng)'
UNION ALL SELECT N'中國是個(gè)偉大的國家'
UNION ALL SELECT N'我們都是中國人,都是炎黃子孫,都是龍人傳人'
IF OBJECT_ID('fn_SplitStringToROWS')IS NOT NULL DROP FUNCTION fn_SplitStringToROWS
GO
CREATE FUNCTION fn_SplitStringToROWS
(
@str NVARCHAR(100)
)
RETURNS @t TABLE(v NVARCHAR(2))
AS
BEGIN
DECLARE @i INT
SET @i=1
WHILE @i<=LEN(@str)
BEGIN
INSERT @t SELECT SUBSTRING(@str,@i,1)
SET @i=@i+1
END
RETURN
END
GO
SELECT * FROM DBO.fn_SplitStringToROWS(N'中國人')
DECLARE @searchSTR NVARCHAR(20)
SET @searchSTR=N'中國人'
SELECT ID,[VALUE] FROM tb a
INNER JOIN fn_SplitStringToROWS(@searchSTR) b
ON CHARINDEX(b.v,a.VALUE)>0
WHERE VALUE LIKE N'%[中國人]%'
GROUP BY ID,VALUE
ORDER BY COUNT(DISTINCT v) DESC
DROP TABLE tb
/*
v
----
中
國
人
(3 個(gè)資料列受到影響)
ID VALUE
----------- ----------------------------------------------------------------------------------------------------
2 中國人
3 中國人民
9 我們都是中國人,都是炎黃子孫,都是龍人傳人
6 我的心中有人姑娘
1 中國
8 中國是個(gè)偉大的國家
5 日本人
7 人民網(wǎng)
(8 個(gè)資料列受到影響)
*/
相關(guān)文章
SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解
在數(shù)據(jù)庫的學(xué)習(xí)中對于一個(gè)表的主鍵和外鍵的認(rèn)識是非常重要的,下面這篇文章主要給大家介紹了關(guān)于SQL?Server主鍵與外鍵設(shè)置以及相關(guān)理解的相關(guān)資料,需要的朋友可以參考下2022-10-10
SQL Server中使用Trigger監(jiān)控存儲過程更改腳本實(shí)例
這篇文章主要介紹了SQL Server中使用Trigger監(jiān)控存儲過程更改腳本實(shí)例,本文使用一個(gè)表來記錄存儲過程更改過程,需要的朋友可以參考下2015-07-07
Godaddy 導(dǎo)入導(dǎo)出MSSQL數(shù)據(jù)庫的實(shí)現(xiàn)步驟
可以從限制文件中導(dǎo)入SQL共享服務(wù)器數(shù)據(jù)庫。如果想把存放在其他地方的數(shù)據(jù)導(dǎo)入,需要先把其內(nèi)容拷到限制文件中。(2010-02-02
sql?server中的觸發(fā)器用法實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于sql?server中觸發(fā)器用法的相關(guān)資料,SQL Server觸發(fā)器是一種特殊類型的存儲過程,它們在數(shù)據(jù)庫中的表上自動執(zhí)行,需要的朋友可以參考下2024-03-03
SQL?Server數(shù)據(jù)庫創(chuàng)建遠(yuǎn)程服務(wù)器備份計(jì)劃(SQL Server2016)
最近項(xiàng)目系統(tǒng)做安全加固,以前是本地備份,現(xiàn)在需要做遠(yuǎn)程內(nèi)網(wǎng)服務(wù)器數(shù)據(jù)庫備份,后期也有可能做異地備份,下面以SQL Server2016 內(nèi)網(wǎng)服務(wù)器數(shù)據(jù)庫備份為例給大家詳細(xì)講解SQL?Server數(shù)據(jù)庫創(chuàng)建遠(yuǎn)程服務(wù)器備份計(jì)劃,感興趣的朋友一起看看吧2023-10-10
jdbc連接sql server數(shù)據(jù)庫問題分析
SQL Server連接中問題還真多。不進(jìn)行設(shè)置還真連接不上,這里總結(jié)一下,需要的朋友可以參考2012-12-12
用SQL統(tǒng)計(jì)SQLServe表存儲空間大小的代碼
當(dāng)SQLServer數(shù)據(jù)庫越來越龐大,而其中的表有非常多的時(shí)候,想要知道到底是哪些表最耗存儲空間,到底該怎樣統(tǒng)計(jì)各個(gè)表的存儲大小呢2012-05-05
SQL Server 數(shù)據(jù)太多優(yōu)化的方法
本文介紹了幾種優(yōu)化SQLServer數(shù)據(jù)庫性能的方法,包括索引優(yōu)化、數(shù)據(jù)分區(qū)和分表、數(shù)據(jù)歸檔、存儲和硬件優(yōu)化、數(shù)據(jù)庫參數(shù)和配置優(yōu)化、批量數(shù)據(jù)處理、清理無用數(shù)據(jù)、使用緩存、并行查詢與并發(fā)以及SQLServer實(shí)例優(yōu)化,這些方法可以幫助在處理大量數(shù)據(jù)時(shí)保持較好的性能2024-11-11

