我有一个变量返回一个像变量=‘10100001001’的格式
我想从列(char 20)中选择最高值(max),其中值与上面的格式匹配…
注意:不确定你的意思“匹配 - 可能是 length “,暂时忽略那个花絮......
length
如果你所做的只是一个 like 模式匹配你可以只是附加 % 在@variable的末尾,通过更新变量( select @variable = '%' + @variable + '%' )或在WHERE子句中(见下文)。
like
%
select @variable = '%' + @variable + '%'
这是一个简单的例子......
建立:
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
示例搜索:
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