有谁见过这样的苛刻限定条件:没有思路。请教大侠!斑竹!是写函数还是有SQL语句呢??

mengxianbao1521 2002-11-14 05:19:39
过程:
针对是三个不同的Edit,输入一个数到数据库中去判断。返回true 或fale
条件:
1。中文名有四个连续的文字相同的或英文有三个单词相同,视为:false.
2。别名四个连续的字母重复的。视为:false.
3。电话号码有连续6位相同。视为:false.


最好能提供一些原代码或函数。
回答是请说明针对那条!
...全文
33 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
icevi 2002-11-14
  • 打赏
  • 举报
回复
查单词的:
create procedure FindRepeatWord(@inputstring varchar(1000),@repeatcount int)
as
set nocount on
declare @table table (id int identity(1,1),value varchar(1000))
declare @begin as varchar(20)
select @begin=''
declare @i as int
select @i=1
while @i<=len(@inputstring)
begin
if substring(@inputstring,@i,1)<>' '
select @begin=@begin+substring(@inputstring,@i,1)
else
begin
insert into @table values (@begin)
select @begin=''
end
select @i=@i+1
end
if len(@begin)<>0 insert into @table values (@begin)

select t1.value
from @table t1 join
(select value ,min(id) as minid from @table group by value ) t0
on t1.value=t0.value and t1.id<t0.minid+@repeatcount
group by t1.value
having count(*)=@repeatcount

set nocount off

if @@rowcount<>0
begin
print 'found'
return 1
end
else
begin
print 'not found'
return 0
end

改成函数也可以。
CSDNM 2002-11-14
  • 打赏
  • 举报
回复
SOUNDEX(char_expr)和DIFFERENCE(char_expr1,char_expr2)不能用在这里,这是一种象电报码的编码。

用存储过程或者自定义函数,研究一下icevi(按钮工厂)的代码。


还有,不要轻易叫人老兄,叫兄了还带老!!
mengxianbao1521 2002-11-14
  • 打赏
  • 举报
回复
楼上的老兄说对了 是要空格分隔的
一开始我想用的函数 ,但数据量有点大啊 ! 一个一个判断,应该用遍历吧!但是我想在SQl中应该有一些函数来判断,看到下面的

SQL Server函数
SOUNDEX(char_expr) 比较两个字符串的相似性后返回一个四位数代码。
DIFFERENCE(char_expr1,char_expr2) 比较两个字符串,返回值从0到4,4为最优匹配。
我没见人用过啊!但我不知道怎么来用 看了些帮助好像SOUNDEX函数,说是发音的相似程度,好像是针对英语的,诸如元音、辅音。的就更让我为难了。
函数的思路!
学习!!请教!!

icevi 2002-11-14
  • 打赏
  • 举报
回复
有几项其实可以合并一下,用下面的存储过程(改写成函数也可以):
create procedure findrepeat(@inputstring varchar(1000),@repeatcount int)
as
declare @begin as varchar(20)
declare @i as int
select @i=1
select @begin=' '
while @i<=len(@inputstring)
begin
if substring(@inputstring,@i,1)=right(@begin ,1)
select @begin=@begin+substring(@inputstring,@i,1)
else
select @begin=substring(@inputstring,@i,1)
select @i=@i+1
if len(@begin)=@repeatcount begin print 'find' return 1 end
end

判断“英文有三个单词相同”的需要改写一下,不过我不知道单词是不是一定是用空格分隔的。
pengdali 2002-11-14
  • 打赏
  • 举报
回复
你非要在数据库中判断就建议你用函数吧!清楚一点,易于维护!!!
蓝天 2002-11-14
  • 打赏
  • 举报
回复
用函数,可是不明白为什么要在数据库中判断

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧