sqlserver中比较一个字符串中是否含含另一个字符串中的一个字符

时间:2024-01-21 03:04:47 

版本一:按分隔符进行比较
算法思路:按分隔符截取搜索字符串循环与待搜索字符进行比较


USE [Fly]
GO
--参数:@inStr 待搜索字串,@fndStr 搜索字串,@doc 分隔符
-- 例:select dbo.fSearch('1,2,3,4,5,6','3,6,5,8,2',',') 返回0-不匹配,返回1-匹配(@instr中有@fndStr内容)
--可以用于表搜索,如:
-- Select *,dbo.fSearch(str,'3,6,5,8,2',',') as 是否匹配 from 表名
-- @fndStr和@doc两个参数就需要你自己提供了,@inStr可以是数据表里的某个待搜索字段名
CREATE FUNCTION CGF_FN_Search(@inStr VARCHAR(500),@fndStr VARCHAR(500),@doc VARCHAR(5))
RETURNS INT
AS
BEGIN
DECLARE @i INT,@c VARCHAR(500),@fStr VARCHAR(500)
SET @fStr = @fndStr
WHILE(LEN(@fStr) > 0)
BEGIN
SET @i = Charindex(@doc, @fStr)
IF(@i = 0)
BEGIN
IF(CHARINDEX(@fStr,@inStr) > 0)
RETURN 1
ELSE
RETURN 0
END
ELSE
BEGIN
SET @c = SUBSTRING(@fStr,1,@i-1)
IF(CHARINDEX(@c,@inStr) > 0)
RETURN 1
ELSE
SET @fStr = SUBSTRING(@fStr,@i+LEN(@doc),LEN(@fStr))
END
END
RETURN 0
END


版本二:逐字进行比较
算法思路:逐字截取搜索字符串循环与待搜索字符进行比较


USE [Fly]
GO
/****** Object: UserDefinedFunction [dbo].[CGF_FN_SearchChar] Script Date: 09/03/2010 16:42:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[CGF_FN_SearchChar](@inStr VARCHAR(500),@fndStr VARCHAR(500))
RETURNS INT
AS
BEGIN
DECLARE @i INT,@f INT,@c VARCHAR(1)
SET @i = 1
SET @f = LEN(@fndStr)
WHILE(@i <= @f)
BEGIN
SET @c = SUBSTRING(@fndStr, @i, @i)
IF(CHARINDEX(@c,@inStr) > 0)
BEGIN
RETURN 1
END
SET @i = @i + 1
END
RETURN 0
END
标签:字符串
0
投稿

猜你喜欢

  • 手残删除python之后的补救方法

    2021-04-13 12:50:04
  • itchat-python搭建微信机器人(附示例)

    2022-05-04 00:00:54
  • Python创建增量目录的代码实例

    2021-12-07 04:12:55
  • python cv2在验证码识别中应用实例解析

    2022-03-29 09:35:58
  • zookeeper python接口实例详解

    2023-03-11 01:34:48
  • 网页设计布局原则

    2010-04-20 17:18:00
  • mysql limit 分页的用法及注意要点

    2024-01-21 06:44:50
  • 详解MySql基本查询、连接查询、子查询、正则表达查询

    2024-01-25 18:20:55
  • python代码过长的换行方法

    2022-12-25 07:19:59
  • php字符串函数学习之strstr()

    2024-05-11 10:02:07
  • numpy matrix和array的乘和加实例

    2022-09-29 15:17:45
  • Pytorch中实现CPU和GPU之间的切换的两种方法

    2021-08-21 07:24:18
  • 仅用500行Python代码实现一个英文解析器的教程

    2022-06-15 02:15:25
  • sysbench-0.4.12编译安装和CPU测试例子分享

    2024-01-24 10:06:21
  • 用CSS3和HTML5五步打造便签效果

    2012-04-25 20:47:51
  • python中matplotlib调整图例位置的方法实例

    2023-09-11 08:52:13
  • 详解MySQL插入和查询数据的相关命令及语句使用

    2024-01-19 00:34:20
  • Python+appium框架原生代码实现App自动化测试详解

    2023-02-26 11:59:32
  • 使用Python+Appuim 清理微信的方法

    2021-05-24 12:22:05
  • Pandas.DataFrame的行名和列名的修改

    2022-10-12 12:40:35
  • asp之家 网络编程 m.aspxhome.com