使用Sql Server 2005
表1
ID Value
ABC001
BCE002
...
我有搜索栏,当我搜索像这个“001”的ID时它显示为空,当我搜索“ABC001”时它会显示值。
查询
Select * from table where id = '" & txtid & "'
txtid = textbox
我只想搜索ID中的数值。
如何为数字搜索编写查询。
需要查询帮助
答案 0 :(得分:3)
select * from MyTable
where Value LIKE '[A-Z][A-Z][A-Z]001'
OR
select * from MyTable
where Value LIKE '[A-Z][A-Z][A-Z]' + RIGHT('000' + CONVERT(VARCHAR, @id), 3)
答案 1 :(得分:1)
SELECT * FROM Table1 WHERE id LIKE '%001'
答案 2 :(得分:0)
如果您提供的每个ID都是3个字母的大写字母,后跟一个3位数的数字,那么Mitch Wheat给出的答案将有效。
rayman86给出的答案基本上无视前面的任何内容。它只查找以001结尾的任何内容。
如果ID的长度变化和/或前几个字符不是偶数字母,最好使用rayman86提供的代码。所以只需使用SELECT * FROM Table WHERE ID LIKE '%Numbers'
,其中Numbers是您的数值。
答案 3 :(得分:0)
对该问题的字面解释,不做任何假设:
创建此功能
create function dbo.numericonly(@s varchar(max))
returns float as
begin
declare @i int set @i = 1
while @i <= len(@s)
if ascii(substring(@s,@i,1)) between 48 and 57
set @i = @i + 1
else
set @s = stuff(@s,@i,1,'')
return @s
end
GO
使用此查询
Select * from table1 where dbo.numericonly(id) = '" & txtid & "'