我有一张表格,包括12X90,12X120,12X160等等。
“X”之后的数字是权重。我需要仅使用前导零填充权重,以便90变为090.正常排序将使90最后而不是第一,我需要按重量正确排序列表。
我怎样才能做到这一点?
答案 0 :(得分:2)
使用charindex
获取列中X
之后的数字,并按该数字排序。
select * from tablename
order by cast(case when charindex('X',col) > 0 then substring(col,charindex('X',col)+1,len(col))
else col end as numeric)
如果还应考虑X
之前的字符串进行排序,请使用
select * from tablename
order by
cast(case when charindex('X',col) > 0 then substring(col,1,charindex('X',col)-1)
else col end as numeric)
,cast(case when charindex('X',col) > 0 then substring(col,charindex('X',col)+1,len(col))
else col end as numeric)
答案 1 :(得分:0)
使用交叉申请
let myPattern = "(?<=\\S)'(?=\\S)"