實現(xiàn)按關(guān)健字模糊查詢,并按匹配度排序的SQL語句
更新時間:2009年09月21日 19:07:41 作者:
SQL語句實現(xiàn)按關(guān)健字模糊查詢,并按匹配度排序
復制代碼 代碼如下:
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'中國是個偉大的國家'
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 個資料列受到影響)
ID VALUE
----------- ----------------------------------------------------------------------------------------------------
2 中國人
3 中國人民
9 我們都是中國人,都是炎黃子孫,都是龍人傳人
6 我的心中有人姑娘
1 中國
8 中國是個偉大的國家
5 日本人
7 人民網(wǎng)
(8 個資料列受到影響)
*/
相關(guān)文章
SQL Server中使用Trigger監(jiān)控存儲過程更改腳本實例
這篇文章主要介紹了SQL Server中使用Trigger監(jiān)控存儲過程更改腳本實例,本文使用一個表來記錄存儲過程更改過程,需要的朋友可以參考下2015-07-07
Godaddy 導入導出MSSQL數(shù)據(jù)庫的實現(xiàn)步驟
可以從限制文件中導入SQL共享服務器數(shù)據(jù)庫。如果想把存放在其他地方的數(shù)據(jù)導入,需要先把其內(nèi)容拷到限制文件中。(2010-02-02
SQL?Server數(shù)據(jù)庫創(chuàng)建遠程服務器備份計劃(SQL Server2016)
最近項目系統(tǒng)做安全加固,以前是本地備份,現(xiàn)在需要做遠程內(nèi)網(wǎng)服務器數(shù)據(jù)庫備份,后期也有可能做異地備份,下面以SQL Server2016 內(nèi)網(wǎng)服務器數(shù)據(jù)庫備份為例給大家詳細講解SQL?Server數(shù)據(jù)庫創(chuàng)建遠程服務器備份計劃,感興趣的朋友一起看看吧2023-10-10
jdbc連接sql server數(shù)據(jù)庫問題分析
SQL Server連接中問題還真多。不進行設置還真連接不上,這里總結(jié)一下,需要的朋友可以參考2012-12-12
用SQL統(tǒng)計SQLServe表存儲空間大小的代碼
當SQLServer數(shù)據(jù)庫越來越龐大,而其中的表有非常多的時候,想要知道到底是哪些表最耗存儲空間,到底該怎樣統(tǒng)計各個表的存儲大小呢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實例優(yōu)化,這些方法可以幫助在處理大量數(shù)據(jù)時保持較好的性能2024-11-11

