日期:2014-05-18  浏览次数:20576 次

高难度问题!!!(对于我来说)
一个名为aa的表中有字段b,字段b   的数据为字符串型,
字段b中的数据有:
mmm-nnn
mmm-nnnn
mmm-mnmn
nnnn-mmm
nnnn-mnmn
现在的问题是如何写一个sql语句来将里面的数据按照 - 前面的字符来进行分组,如上面要得到结果是:mmm和nnnn两条记录。

搞了好久都没搞出来只好来这里求救了!
请高手帮忙呀!

------解决方案--------------------
create table #aa(b varchar(20))
insert into #aa
select 'mmm-nnn '
union all select 'mmm-nnnn '
union all select 'mmm-mnmn '
union all select 'nnnn-mmm '
union all select 'nnnn-mnmn '

select left(b,charindex( '- ',b)-1) from #aa
group by left(b,charindex( '- ',b)-1)
------解决方案--------------------
select case when charindex( '- ',b)> 1 then left(b,charindex( '- ',b)-1) else b end as b
from tablename
group by
case when charindex( '- ',b)> 1 then left(b,charindex( '- ',b)-1) else b end