当前位置: 代码迷 >> Sql Server >> 初学者简单查询
  详细解决方案

初学者简单查询

热度:69   发布时间:2016-04-24 09:21:33.0
菜鸟求一个简单查询
表中数据

WGEN.Other.Ra.F32.15s2
www.Other.bbb.F32.60s2
www.Other1.bbab.F32.10m2
www.Other.bbab.F32.Hpitch3
www.Other.bbab.b0.AcVola.High
www.Other.bbb.b0.AcVola.Low
www.Other1.bbb.b0.IGBT.BreakFault
www.Other.zbbb.b0.IGBT.Fault
www.Other.er.b0.IGBT.NetFault
www.Other.bb.b0.overCur

实现查询后
www.Other.bbab.b0.AcVola.High
www.Other.bbb.b0.AcVola.Low
www.Other1.bbb.b0.IGBT.BreakFault
www.Other.zbbb.b0.IGBT.Fault
www.Other.er.b0.IGBT.NetFault

将五个点或是大于五个点的值查询出来。
------解决思路----------------------
select * from tbl where col like '%.%.%.%.%.%'

------解决思路----------------------
create table [TB] (col varchar(33))
insert into [TB]
select 'WGEN.Other.Ra.F32.15s2' union all
select 'www.Other.bbb.F32.60s2' union all
select 'www.Other1.bbab.F32.10m2' union all
select 'www.Other.bbab.F32.Hpitch3' union all
select 'www.Other.bbab.b0.AcVola.High' union all
select 'www.Other.bbb.b0.AcVola.Low' union all
select 'www.Other1.bbb.b0.IGBT.BreakFault' union all
select 'www.Other.zbbb.b0.IGBT.Fault' union all
select 'www.Other.er.b0.IGBT.NetFault' union all
select 'www.Other.bb.b0.overCur'

select * from [TB]


SELECT  *
FROM    tb
WHERE   LEN(col) - LEN(REPLACE(col, '.', '')) = 5

/*
www.Other.bbab.b0.AcVola.High
www.Other.bbb.b0.AcVola.Low
www.Other1.bbb.b0.IGBT.BreakFault
www.Other.zbbb.b0.IGBT.Fault
www.Other.er.b0.IGBT.NetFault*/
  相关解决方案