实现按关健字模糊查询,并按匹配度排序的SQL语句

 更新时间:2009年09月21日 19:07:41   作者:  
SQL语句实现按关健字模糊查询,并按匹配度排序
复制代码 代码如下:

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'人民网'
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 人民网

(8 個資料列受到影響)
*/

相关文章

  • SQL Server主键与外键设置以及相关理解

    SQL Server主键与外键设置以及相关理解

    在数据库的学习中对于一个表的主键和外键的认识是非常重要的,下面这篇文章主要给大家介绍了关于SQL Server主键与外键设置以及相关理解的相关资料,需要的朋友可以参考下
    2022-10-10
  • SQL Server中使用Trigger监控存储过程更改脚本实例

    SQL Server中使用Trigger监控存储过程更改脚本实例

    这篇文章主要介绍了SQL Server中使用Trigger监控存储过程更改脚本实例,本文使用一个表来记录存储过程更改过程,需要的朋友可以参考下
    2015-07-07
  • Godaddy 导入导出MSSQL数据库的实现步骤

    Godaddy 导入导出MSSQL数据库的实现步骤

    可以从限制文件中导入SQL共享服务器数据库。如果想把存放在其他地方的数据导入,需要先把其内容拷到限制文件中。(
    2010-02-02
  • sql server中的触发器用法实例详解

    sql server中的触发器用法实例详解

    这篇文章主要给大家介绍了关于sql server中触发器用法的相关资料,SQL Server触发器是一种特殊类型的存储过程,它们在数据库中的表上自动执行,需要的朋友可以参考下
    2024-03-03
  • SQL Server数据库创建远程服务器备份计划(SQL Server2016)

    SQL Server数据库创建远程服务器备份计划(SQL Server2016)

    最近项目系统做安全加固,以前是本地备份,现在需要做远程内网服务器数据库备份,后期也有可能做异地备份,下面以SQL Server2016 内网服务器数据库备份为例给大家详细讲解SQL Server数据库创建远程服务器备份计划,感兴趣的朋友一起看看吧
    2023-10-10
  • jdbc连接sql server数据库问题分析

    jdbc连接sql server数据库问题分析

    SQL Server连接中问题还真多。不进行设置还真连接不上,这里总结一下,需要的朋友可以参考
    2012-12-12
  • sqlserver 模糊查询常用方法

    sqlserver 模糊查询常用方法

    LIKE 关键字搜索与指定模式匹配的字符串、日期或时间值。LIKE 关键字使用常规表达式包含值所要匹配的模式。模式包含要搜索的字符串,字符串中可包含四种通配符的任意组合。
    2010-09-09
  • SQL Server重置IDENTITY属性种子值操作

    SQL Server重置IDENTITY属性种子值操作

    这篇文章主要介绍了SQL Server重置IDENTITY属性种子值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 用SQL统计SQLServe表存储空间大小的代码

    用SQL统计SQLServe表存储空间大小的代码

    当SQLServer数据库越来越庞大,而其中的表有非常多的时候,想要知道到底是哪些表最耗存储空间,到底该怎样统计各个表的存储大小呢
    2012-05-05
  • SQL Server 数据太多优化的方法

    SQL Server 数据太多优化的方法

    本文介绍了几种优化SQLServer数据库性能的方法,包括索引优化、数据分区和分表、数据归档、存储和硬件优化、数据库参数和配置优化、批量数据处理、清理无用数据、使用缓存、并行查询与并发以及SQLServer实例优化,这些方法可以帮助在处理大量数据时保持较好的性能
    2024-11-11

最新评论