说来说去就是那几个函数
select *
from tablename
where (charindex('-', columnname) = 0 and columnname = '6') or (charindex('-', columnname) > 0 and left(columnname, charindex('-', columnname) - 1) = '6')
select *
from tablename
where (charindex('-', columnname) = 0 and columnname = '6') or (charindex('-', columnname) > 0 and left(columnname, charindex('-', columnname) - 1) = '6')
from tablename
where left(columnname, charindex('-', columnname) - 1) = '6'union allselect * from tablename where charindex('-', columnname)=0 and left(columnname,1) ='6'
from tablename
where left(columnname, case charindex('-', columnname) when 0 then 1 else charindex('-', columnname)-1 end ) = '6'
insert @t
select '1' union
select '6-7-8-9' union
select '10-11-12-13' union
select '111-2323-8998'
select rtrim(c)
from @t
where right(left(c, charindex('-', c+'-') - 1),1) = '1'/*
---------------------
1
111-2323-8998
*/
from tablename
where left(columnname, charindex('-', columnname) - 1) = '6' and charindex('-', columnname) > 0
insert @t
select '1' union
select '6-7-8-9' union
select '10-11-12-13' union
select '121-2323-8998'
select rtrim(c)
from @t
where right(left(c, charindex('-', c+'-') - 1),1) = '1'--------------------------这个也不是楼主想要的 因为把 '121-2323-8998' 也选出来了
因为包含的算法用现有的SQL函数实现不了,关键就是 区别第一个'-'前面的
字符串是否所有单个字符都是同一个字符组成的情况
如:'121'和'111'就是不同的