MS-SQL SERVER从字符串中搜索符合指定范围的数值--【叶子】
2011-07-09 10:01
701 查看
需求贴: http://topic.csdn.net/u/20110708/17/334a25b1-ab00-4fab-bdfa-2fcd319411a4.html 主要描述:
/*
colname
------------
12/31/75
34/67/94/113
*/
例如上表,只有一个字段nvarchar类型的。
搜索的时侯输入一个数值15,那么搜索的范围就是5-25,第一行的12符合这个范围,第一行就搜出来。
例如输入70,第一行的75,和第二行的67都符合搜索范围。
/*
colname
------------
12/31/75
34/67/94/113
*/
例如上表,只有一个字段nvarchar类型的。
搜索的时侯输入一个数值15,那么搜索的范围就是5-25,第一行的12符合这个范围,第一行就搜出来。
例如输入70,第一行的75,和第二行的67都符合搜索范围。
--第一种方法(借助表变量或是临时表) set nocount on --测试数据 declare @table table (colname nvarchar(12)) insert into @table select '12/31/75' union all select '34/67/94/113' union all select '1/56/3/16' union all select '34/23/12/24' union all select '90/34/45/47' --设置参数 declare @i int;set @i=70 declare @j int;set @j=@i-10 --定义表变量,做辅助表 declare @t table(id int) while @j<=@i+10 begin insert into @t select @j set @j=@j+1 end --根据参数进行搜索 select a.* from @table a left join @t b on charindex('/'+ltrim(b.id)+'/','/'+a.colname+'/')>0 where b.id is not null --运行结果 /* colname ------------ 12/31/75 34/67/94/113 */
--第二种方法借助master..spt_values --测试数据 declare @table table (colname nvarchar(12)) insert into @table select '12/31/75' union all select '34/67/94/113' union all select '1/56/3/16' union all select '34/23/12/24' union all select '90/34/45/47' select * from @table --设置参数 declare @i int;set @i=70 --进行搜索 select a.* from @table a left join master..spt_values b on charindex('/'+ltrim(b.number)+'/','/'+a.colname+'/')>0 where b.[type]='P' and b.number is not null and number between @i-10 and @i+10 --运行结果 /* colname ------------ 12/31/75 34/67/94/113 */
相关文章推荐
- 浅淡sql如何随机取指定范围的数值--【叶子】
- NSString:创建,长度,取字符,是否以某字符串开头,结尾, 查找指定字符串的范围,截取,拼接,替换,比较,替换,数值转换,大小写转换
- 浅淡sql如何随机取指定范围的数值--【叶子】
- MS-SQL SERVER单列合并的四种常用方法--【叶子】
- vb搜索局域网内所有SQL Server服务器和指定SQL Server服务器上的所有数据库
- Linux命令:查找符合指定的权限数值的目录
- 取指定范围内的字符串
- 在 stream流 和 byte[] 中查找(搜索)指定字符串
- 在SQL SERVER 中获取指定连续月份的旬的日期范围
- 在SQL Server 2005所有表中搜索某个指定列的方法
- MS-SQL Server字符串处理函数大全
- js中Math.random()生成指定范围数值的随机数
- shell 生成指定范围随机数与随机字符串
- 关于SQL Server中将数值类型转换为字符串的问题(转)
- 提取指定范围的字符串
- sql server 在当前数据库查询 指定字符串,从而得出 该字符存在在 哪个表哪个字段
- [Linux]搜索文件内指定字符串的方法
- 一个在文本文件搜索指定字符串的程序
- SQL server指定随机数范围
- 关于SQL Server中将数值类型转换为字符串的问题