检查给定串是否存在于由区间及点集的结合内
------------------------------------
-- Author: happyflystone
-- Date:2009-07-20
-- Parameter: @CardString
-- 被查询的串,形如:-13300001234,13300002230,13300002300
-- @CardNo 要查询的串
-- Return : int 0 -- 不存在于搜索串的范围内
-- 1 -- 存在于
-- 转载请注明出处。更多请访问:http://blog.csdn.net/happyflystone
-- 原帖地址:http://blog.csdn.net/happyflystone/archive/2009/07/21/4365264.aspx
------------------------------------
--创建函数
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
Go
--测试示例
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
*/
检查给定串是否存在于由区间及点集的结合内相关推荐
- C++检查给定数字是否为4的幂的算法实现(附完整源码)
C++检查给定数字是否为4的幂的算法实现 C++检查给定数字是否为4的幂的算法实现完整源码(定义,实现,main函数测试) C++检查给定数字是否为4的幂的算法实现完整源码(定义,实现,main函数测 ...
- 数据库连接出错,请检查连接字串"的多种问题解决办法
数据库连接出错,请检查连接字串"的多种问题解决办法 今天..有一个客户说..昨天重装完的2003系统后,,服务器上所有用到ACCESS数据库的网站,全都用不了了..但MSSQL可以用..., 动网 ...
- JavaScript如何判定一个给定的时间区间在哪些时间段范围内?
作者 | 十方 来源 | https://segmentfault.com/a/1190000041958661 有这样的一个场景:给定一个时间区间,需要判定这个时间区间在哪些时间段范围内. 比如时间 ...
- php 使用strrpos检查字串是否存在
strrpos( string $haystack, string $needle[, int $offset = 0] ) : int 返回字符串 haystack 中 needle 最后一次出现的 ...
- 检查给定数字是否为斐波那契数的Python程序
Given a number and we have to check whether it is a Fibonacci number or not in Python? 给定一个数字,我们必须检查 ...
- c语言位运算符的使用_C语言程序使用位运算符检查给定数字是否为回文
c语言位运算符的使用 Problem statement: Write a C program to check whether a number (binary representation) is ...
- 判断日期是否为周末 java_如何用Java检查给定的日期是否代表周末
首先,显示当前日期:LocalDate date = LocalDate.now(); 现在,从上述日期(当前日期)中获取星期几:DayOfWeek day = DayOfWeek.of(date.g ...
- c语言哈密顿路径算法,用于检查给定图中是否存在哈密顿循环或路径的C ++程序...
哈密顿循环是哈密顿路径,因此从哈密顿路径的最后一个顶点到第一个顶点有一条边(在图中).它在无向图中是一条路径,该路径恰好访问该图的每个顶点一次. 功能和目的:Begin 1.function isSa ...
- matlab里面sin函数是角度,应用matlab求函数f(x)=sin(x)/x^2+x*cos(x)在区间【1,9】内的极值点,并说明是 极大值点还是极小值点。...
www.mh456.com防采集. 求函数极值,可以用copyfminsearch()极小值函2113数来解决.求函数极大值5261就求函数极4102小值的1653反函数. syms x v=int( ...
最新文章
- Vue子组件调用父组件方法并传参的5种方式:$emit触发、传入子组件function、访问父组件$parent.function、用inject关联父组件provide的方法、用window.fun
- 7.10 数据注解特性--NotMapped
- python制作adobe photoshop插件_Adobe Photoshop风格的后期处理和OpenCV
- toad for oracle xpert edition,Toad for oracle 软件产品模块对比,方便大家选型
- Java的迭代器—— Iterator
- 前端新手程序员不知道的 20个小技巧
- MyBatis接口代理
- 干货时间:聊聊DevOps下的技术系列之契约测试
- 《Puppet实战手册》——导读
- 全球活跃开发者不足 1500 万,业余爱好者和学生仅占四分之一
- pytorch迁移学习后使用微调策略再次提高模型训练结果
- 二维字符数组转字符串c语言,[求助] 怎样转换一个字符二维数组到一维数组~~~...
- SharePoint专家新闻轮转器WebPart----亲測力推之Web部件
- :将照片处理成绘画风格
- win2012故障转移mysql集群_在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群
- http缓存与cdn相关技术
- HDU - 2087 剪花布条(kmp)
- HTML5 css3 阴影效果
- 教你用Python 做PPT之制作动态图~做出来的效果高级又好看
- 定性与定量的单变量正态性检验