请问:关于对分段数据的查询方法

h235h3h 2005-02-06 11:11:49
数据库里这张表记录的信息格式如下:

代码区间 级别
1-10 A1
11-45 A2
70-75,46-46 A3
50-100,120-150 A4

代码区间不会有重叠的区间,
现在想根据用户输入的某个代码来查询该代码是输入什么级别的,直接用sql能实现吗?
或者哪种方法会更好呢
...全文
62 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
子陌红尘 2005-02-06
  • 打赏
  • 举报
回复
--创建函数
create function f_test(@v varchar(100),@i int)
returns int
as
begin
declare @v1 varchar(100)
declare @strdata int
declare @enddata int

set @v = @v+','

while(charindex(',',@v)>0)
begin
set @v1 = substring(@v,1,charindex(',',@v)-1)

set @strdata = cast(substring(@v1,1,charindex('-',@v)-1) as int)
set @enddata = cast(stuff(@v1,1,charindex('-',@v1),'') as int)

if(@i between @strdata and @enddata)
return 1
set @v = stuff(@v,1,charindex(',',@v),'')
end

return 0
end

--执行查询
declare @i int --输入代码
set @i = 100
select 级别 from 表 where dbo.f_test(代码区间,@i) = 1
jinjazz 2005-02-06
  • 打赏
  • 举报
回复
代码区间 这个字段定义的不规范

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧