有表User 字段:UserID,LoginName,PassWord 其中LoginName有如下示例数据: haha50005 haha50006 の删除记忆… の删除记忆” 现在需要有这样的SQL语句,能够将名字里面包含了两个以上相同文字和连续3个以上相同数字和字母的排除,只留一个 结果如: Userid LoginName Password 1 haha50005 123 3 の删除记忆… 123
这个问题第1个回答:
多谢大家
这个问题第2个回答:
这个有难度.
这个问题第3个回答:
Select * from User a where not exists(select 1 from User where lefe(LoginName,3)=left(a.LoginName,3) and Userid>a.Userid)
这个问题第4个回答:
所以才来请教大家
这个问题第5个回答:
declare @t table(ID int identity(1,1),loginname varchar(20),password varchar(10))
insert @t select 'haha50005','123'
insert @t select 'haha50006' ,465679
insert @t select 'の删除记忆…' ,456
insert @t select 'の删除记忆”',123456
select * from @t t where not exists(select 1 from @t where left(loginname,3)=left(t.loginname,3) and t.id>id)
這樣可以嗎?
这个问题第6个回答:
strsql = "insert into Mmen SELECT Moff.office_name,Mtemp.signal_name,Mtemp.alm_time,Mtemp.clear_time " & _
"from Mtemp , Moff " & _
"where Mtemp.office_ID=Moff.office_ID and Mtemp.signal_name='门禁' " & _
"order by office_name,signal_name, xuhao"
这是一个写入的语句,供你参考
这个问题第7个回答:
declare @t table(ID int identity(1,1),loginname varchar(20),password varchar(10))
insert @t select 'haha50005','123'
insert @t select 'haha50006' ,465679
insert @t select 'の删除记忆…' ,456
insert @t select 'の删除记忆”',123456
select * from @t t where not exists(select 1 from @t where left(loginname,3)=left(t.loginname,3) and t.id>id)
這樣可以嗎?
-----------------------
如果加这样一条数据就不能达到要求了。不过也已经很好了,谢谢
insert @t select 'h1ah1a50006' ,465679
你的这个语句只能筛选前面相同的
这个问题第8个回答:
引用 5 楼 wufeng4552 的回复: declare @t table(ID int identity(1,1),loginname varchar(20),password varchar(10)) insert @t select 'haha50005','123' insert @t select 'haha50006' ,465679 insert @t select 'の删除记忆…' ,456 insert @t select 'の删除记忆”',123456 select * from @t t where not exists(select 1 from @t where left(loginname,3)=left(t.loginname,3) and t.id>id) 這樣可以嗎? 能够将名字里面包含了两个以上相同文字和连续3个以上相同数字和字母的排除,只留一个
这个你那句是不行的吧
这个问题第9个回答:
直接SQL语句怕是难搞.使用存储过程来做,在里面用循环来做吧.
这个问题第10个回答:
SQL code
select * from [user] where id in (select min(id) from [user] group by left(LoginName,3))
这个问题第11个回答:
能够将名字里面包含了两个以上相同文字和连续3个以上相同数字和字母的排除,只留一个
我理解楼主的要求是将如 abc1,abc2,abc3这样的名字归并,如果要将名字里任意字母组合的进行对比,那可不是小事情,至少得建一个大的词典,然后用词典进行逐个比较,烦着呐!
这个问题第12个回答:
SQL code
select * from [user] where id in (select min(id) from [user] group by left(LoginName,3))
试一下这个
这个问题第13个回答:
再帮顶一个
活跃一下人气
这个问题第14个回答:
1 删除记忆
2 删除中国
3 中国asdf
问下这种情况是什么显示
显示
1 删除记忆
2 删除中国
??
这个问题第15个回答:
SQL code
--函数
create function f_compstr(
@str1 varchar(8000),
@str2 varchar(8000)
) returns bit
as
begin
declare @re bit,@lstr varchar(8000),@sstr varchar(8000)
declare @tb table(id int identity(1,1),a int)
insert into @tb(a) select top 100 null from sysobjects a,sysobjects b
if len(@str1)>len(@str2)
select @lstr=@str1,@sstr=@str2
else select @lstr=@str2,@sstr=@str1
set @re=case when exists(
select 1
from (select name=@sstr)a,@tb b
where (b.id<=len(@sstr)-2 and @lstr like '%'+substring(name,b.id,3)+'%')
or (b.id<=len(@sstr)-1 and @lstr like '%'+substring(name,b.id,2)+'%' and patindex('%[^吖-座]%',substring(name,b.id,2))=0)
) then 1 else 0 end
return(@re)
end
--测试数据
declare @t table(ID int identity(1,1),loginname varchar(20),password varchar(10))
insert @t select 'haha[1] [2] 下一页