表名 = CODES
列名 = STR
codes
-------------------------------------------------------------------------
ID str ...
1 acescsdnsd
2 ESEESMCSD
3 KQCSSSSSM
4 ssocsosdesf
5 ..................
---------------------------------------------------------------------------
现在有一个字符串 长度为4 = CSDN(不区分大小写)
要求使用ACCESS中可以使用的语句 判断出 与表中 最大相同的长度的值 比如当前值就为 4 .ID1中存在4位相同的数据
其实说白了就是 判断一个字符串与数据库中一列字符串数据中相同字符个数的查询 也可以理解为相似度查询
------解决方案--------------------
给你个完整的吧 :
create table codes(
[str] varchar(100) not null
)
insert into codes
select 'acescsdnsd' union all
select 'ESEESMCSD' union all
select 'KQCSSSSSM' union all
select 'ssocsosdesf'
declare @v1 varchar(4)
set @v1 ='CSDN'
select CHARINDEX(@v1,[str]),[str] from codes
自己执行看看结果
------解决方案--------------------
declare @T table([ID] int,[str] varchar(11),cnt int)
insert @T
select 1,'acescsdnsd',0 union all
select 2,'ESEESMCSD',0 union all
select 3,'KQCSSSSSM',0 union all
select 4,'ssocsosdesf',0
declare @p varchar(10) set @p='csdn'
declare @i int set @i=len(@p)
while @i>0
begin
update @T set cnt=cnt+sign(charindex(substring(@p,@i,1),[str]))
set @i=@i-1
end
select * from @t
/*
ID str cnt
----------- ----------- -----------
1 acescsdnsd 4
2 ESEESMCSD 3
3 KQCSSSSSM 2
4 ssocsosdesf 3
*/