NOTE: Not sure what you mean by "Matches -- might be the length
", so ignoring that tidbit for time being ...
If all you're doing is a like
pattern match you can just append the %
on the ends of @variable, either by updating the variable (select @variable = '%' + @variable + '%'
) or in the WHERE clause (see below).
Here's a quick example ...
Setup:
create table Table1 (id int, value varchar(20))
go
insert Table1 values (1,'101000019')
insert Table1 values (2,'abcd123gh')
insert Table1 values (3,'101000026')
insert Table1 values (4,'abcd')
insert Table1 values (5,' 23433')
insert Table1 values (6,'10100gh34')
go
select * from Table1
go
id value
----------- --------------------
1 101000019
2 abcd123gh
3 101000026
4 abcd
5 23433
6 10100gh34
Example searches:
declare @variable varchar(20)
select @variable = '10100001001'
print "++++++++++++ pattern : %1!", @variable
select max(value) from Table1 where value like '%' + @variable + '%'
select @variable = '101000'
print "++++++++++++ pattern : %1!", @variable
select max(value) from Table1 where value like '%' + @variable + '%'
select @variable = '10100'
print "++++++++++++ pattern : %1!", @variable
select max(value) from Table1 where value like '%' + @variable + '%'
go
++++++++++++ pattern : 10100001001
max(Table1.value)
--------------------
NULL
++++++++++++ pattern : 101000
max(Table1.value)
--------------------
101000026
++++++++++++ pattern : 10100
max(Table1.value)
--------------------
10100gh34