博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
检查给定串是否存在于由区间及点集的结合内
阅读量:6256 次
发布时间:2019-06-22

本文共 1385 字,大约阅读时间需要 4 分钟。

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

-- Author: happyflystone  

-- Date:2009-07-20

-- Parameter: @CardString

-- 被查询的串,形如:-13300001234,13300002230,13300002300

-- @CardNo  要查询的串

-- Return : int 0 -- 不存在于搜索串的范围内

--              1 -- 存在于

-- 转载请注明出处。更多请访问:

-- 原帖地址:

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

--创建函数

Create function IsInCardString(@CardString varchar(8000),@CardNo varchar(11))

returns int

as

begin

    declare @temp table(a varchar(200))

    declare @i int

    set @CardString = rtrim(ltrim(@CardString))+','

    set @i = charindex(',', @CardString)

    while @i >= 1

    begin

        insert @temp values(left(@CardString, @i - 1))

        set @CardString = substring(@CardString, @i + 1, len(@CardString) - @i)

        set @i = charindex(',', @CardString)

    end

    if exists(select 1

    from (

           select case when charindex('-',a) > 0 then left(a,11) else a end as s,

           case when charindex('-',a) > 0 then right(a,11) else a end as e

           from @temp

          ) a

    where @CardNo between s and e)

        set @i= 1

    else

        set @i= 0

    return @i

end

 

--示例

declare @CardString varchar(1000)

set @CardString ='13300000000-13300001234,13300002230,13300002300,13300002302,13300004101-13300004204,13300004212,13300004310'

declare @CardNo varchar(1000)

set @CardNo = '13300000001'  --存在

select dbo.IsInCardString(@CardString,@CardNo) as result1

set @CardNo = '13300001235'  --不存在

select dbo.IsInCardString(@CardString,@CardNo) as result2

 

--运行结果

/*

result1

-----------

1

 

result2

-----------

0

*/

你可能感兴趣的文章
Win 10 新测试版继续改进 Edge 的 HTML5 性能
查看>>
《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第2课2.1节简介
查看>>
Onyx 0.9.11 发布,分布式计算系统
查看>>
《数据库技术原理与应用教程》一3-3现实世界
查看>>
关于文件的存储——windows和Linux比较
查看>>
No1_Web的工作机制
查看>>
php class中public,private,protected的区别,以及实例
查看>>
谈云计算(仿出师表)
查看>>
excel导入导出组件设计
查看>>
余额宝技术架构及演进
查看>>
iOS开发之UIPickerView
查看>>
LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址
查看>>
【原创】使用 VS 编译遇到的一些 error 和 warning(持续更新)
查看>>
Windows快捷键高手用法
查看>>
Cocos2d-x3.2 EditBox的使用
查看>>
使用StrutsSpringTestCase测试框架报错
查看>>
深入理解计算机系统-之-数值存储(三)-- 原码、反码、补码和移码详解
查看>>
Linux应用笔记:Linux下设置和查看环境变量
查看>>
SQL挑战——如何高效生成编码
查看>>
集群调度技术研究综述
查看>>