读书人

SQLServer给出查询数据范围实现批量

发布时间: 2012-01-22 22:38:43 作者: rapoo

SQLServer给出查询数据范围,实现批量模糊查询
数据为
ID 串码
1A0000000001
2A0000000002
3A0000000003
4A0000000004
5A0000000005
6A0000000006
7A0000000007
要求:
给出一个查询范围如
A0000000003,A0000000006
然后查询这两条数据范围之间的全部数据,要求数据一个文本框内录入,中间使用半角逗号,
有没有什么简便方法来实现这样的模糊批量查询?
不胜感激;

[解决办法]
A0000000003,A0000000006

建议放到两个文本框中输入,否则还要拆分字符串

where 串码 between 'A0000000003' and 'A0000000006'
[解决办法]

SQL code
declare @s varchar(50)select @s='A0000000003,A0000000006'select * from tb where 串码 between left(@x,charindex(',',@s)-1)and substring(@s,charindex(',',@s)+1,20)
[解决办法]
SQL code
create table t10(ID int,串码 varchar(20))insert into t10select 1, 'A0000000001' union allselect 2, 'A0000000002' union allselect 3, 'A0000000003' union allselect 4, 'A0000000004' union allselect 5, 'A0000000005' union allselect 6, 'A0000000006' union allselect 7, 'A0000000007'-- 程序中输入的串@xdeclare @x varchar(50)select @x='A0000000003,A0000000006'select * from t10where 串码 between left(@x,charindex(',',@x)-1)and substring(@x,charindex(',',@x)+1,20)ID          串码----------- --------------------3           A00000000034           A00000000045           A00000000056           A0000000006
[解决办法]
探讨
上面的回答很精彩,
我现在有一个新的想法
可否使用Like进行模糊查询其中的范围?
客户输入 a100000,a2dafdsfs
查询 where serialNumber like 'a100000,a2dafdsfs'
where serialNumber like '%a100000,a2dafdsfs%'
来实现上面的功能?

读书人网 >SQL Server

热点推荐