首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问一个数据过滤的有关问题,

2011-12-31 
请教一个数据过滤的问题,请指教.表tb1有列field1,有如下数据:field1101-123-5101-123101-200101-200-1-100

请教一个数据过滤的问题,请指教.
表tb1有列field1,有如下数据:
field1
101-123-5
101-123
101-200
101-200-1-100
101-200-2
101-300
101-300-1
101-400-1-100-B

我想取出如下数据:
field1
101-123
101-200
101-300
101-400-1-100-B
即,相同代码中取最短的一个

请问有什么好的方法吗?想了好久了,谢谢各位朋友!

[解决办法]
declare @t table(code varchar(30))
insert into @t select '101-123-5 '
insert into @t select '101-123 '
insert into @t select '101-200 '
insert into @t select '101-200-1-100 '
insert into @t select '101-200-2 '
insert into @t select '101-300 '
insert into @t select '101-300-1 '
insert into @t select '101-400-1-100-B '

select
t.*
from
@t t
where
not exists(select 1 from @t where t.code like code+ '% ' and len(code) <len(t.code))
[解决办法]
Select * From tb1 A
Where Not Exists (Select * From tb1 Where A.field1 Like '% ' + field1 + '% ' And A.field1 != field1)
[解决办法]
declare @t table(code varchar(30))
insert into @t select '101-123-5 '
insert into @t select '101-123 '
insert into @t select '101-200 '
insert into @t select '101-200-1-100 '
insert into @t select '101-200-2 '
insert into @t select '101-300 '
insert into @t select '101-300-1 '
insert into @t select '101-400-1-100-B '

select
t.*
from
@t t
where
not exists(select 1 from @t where t.code like code+ '% ' and code <t.code)

热点排行