sqlserver, 比较字符串, 区分长度
例如 varchar 类型的字段 存放的值是:57,127 在比较的时候127要比57大,我用max函数查询出来的是57,请问有什么改进的办法吗? sqlserver 比较
[解决办法]
存储数字就该用 int,用 varchar 只好 convert(int, field)了,自讨苦吃了
[解决办法]
declare @t table(id int,v varchar(30))
insert into @t
select 1, '57,127' union all
select 2, '125,98'
select id,
v,
max(cast(SUBSTRING(t.v, number ,CHARINDEX(',',t.v+',',number)-number) as int)) max_value
from @t t,master..spt_values s
where s.number >=1
and s.type = 'P'
and SUBSTRING(','+t.v,s.number,1) = ','
group by id,v
/*
idv max_value
2125,98125
157,127127
*/