A表:ID、姓名、工作单位、户口、身份证号、合同开始时间、合同起止时间。
B表:ID、姓名、单位。
要求:实现A表的工作单位和B表的单位要模糊匹配,且A表的姓名要和B表的姓名一样。
类似这样的句子:select * from a,b where a.姓名 = b.姓名 and (a.工作单位 like '%b.单位%' or b.单位 like '%a.工作单位%');
上面这句话是不正确的,但就想实现这个效果,还是请高手们解决一下吧。谢谢了。
本人是菜鸟,希望您能给提供一下具体方法,十分感谢。
18 个解决方案
#1
select * from a,b where a.姓名 = b.姓名 and (a.工作单位 like '%'+b.单位'+%' or b.单位 like '%'+a.工作单位+'%');--用加號
#2
select * from a,b where a.姓名 = b.姓名 and (a.工作单位 like '%'+b.单位+'%' or b.单位 like '%'+a.工作单位+'%');--用加號
#3
select *
from a,b
where a.姓名 = b.姓名 and (charindex(b.单位,a.工作单位)>0 or charindex(a.工作单位,b.单位)>0);
from a,b
where a.姓名 = b.姓名 and (charindex(b.单位,a.工作单位)>0 or charindex(a.工作单位,b.单位)>0);
#4
#5
我想问问楼主,象
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
#6
declare @A表 table (姓名 varchar(10), 单位 varchar(100))
declare @B表 table (姓名 varchar(10),单位 varchar(100))
insert @A表 select '張三','航天公司'
insert @A表 select '李四','石化公司'
insert @B表 select '張三','航天'
insert @B表 select '王五','科技電子'
select * from @A表 a, @B表 b where a.姓名=b.姓名 and( patindex('%'+a.单位+'%',b.单位)>0 or patindex('%'+b.单位+'%',a.单位)>0)
declare @B表 table (姓名 varchar(10),单位 varchar(100))
insert @A表 select '張三','航天公司'
insert @A表 select '李四','石化公司'
insert @B表 select '張三','航天'
insert @B表 select '王五','科技電子'
select * from @A表 a, @B表 b where a.姓名=b.姓名 and( patindex('%'+a.单位+'%',b.单位)>0 or patindex('%'+b.单位+'%',a.单位)>0)
#7
select *
from a,b
where a.姓名 = b.姓名 and (a.工作单位 like '%'+b.单位+'%' or b.单位 like '%'+a.工作单位+'%')
#8
我想问问楼主,象
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
需要批配的。
谢谢楼上的兄弟们,谢谢你们的帮助。方法还不止一种,呵呵。又学东西 了。谢谢
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
需要批配的。
谢谢楼上的兄弟们,谢谢你们的帮助。方法还不止一种,呵呵。又学东西 了。谢谢
#9
select *
from a inner join b on a.姓名 = b.姓名
where (a.工作单位 like '%'+b.单位'+%' or b.单位 like '%'+a.工作单位+'%');
这条语句楼主试衣下。
from a inner join b on a.姓名 = b.姓名
where (a.工作单位 like '%'+b.单位'+%' or b.单位 like '%'+a.工作单位+'%');
这条语句楼主试衣下。
#10
呵呵,谢谢了,LS的方法和前面的朋友给的结果一样,谢谢了。
#11
使用动态SQL语句.
#12
要匹配的话就麻烦了,上面的方法都不能匹配哦
#13
学习。。。
#14
是不是要用存储过程?求解中,谢谢。
#15
求解谢谢。
#16
说的不错,前面的方法都不符合楼主的要求
#17
好像可以用全文索引的CONTAINS布尔逻辑检索
#18
#1
select * from a,b where a.姓名 = b.姓名 and (a.工作单位 like '%'+b.单位'+%' or b.单位 like '%'+a.工作单位+'%');--用加號
#2
select * from a,b where a.姓名 = b.姓名 and (a.工作单位 like '%'+b.单位+'%' or b.单位 like '%'+a.工作单位+'%');--用加號
#3
select *
from a,b
where a.姓名 = b.姓名 and (charindex(b.单位,a.工作单位)>0 or charindex(a.工作单位,b.单位)>0);
from a,b
where a.姓名 = b.姓名 and (charindex(b.单位,a.工作单位)>0 or charindex(a.工作单位,b.单位)>0);
#4
#5
我想问问楼主,象
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
#6
declare @A表 table (姓名 varchar(10), 单位 varchar(100))
declare @B表 table (姓名 varchar(10),单位 varchar(100))
insert @A表 select '張三','航天公司'
insert @A表 select '李四','石化公司'
insert @B表 select '張三','航天'
insert @B表 select '王五','科技電子'
select * from @A表 a, @B表 b where a.姓名=b.姓名 and( patindex('%'+a.单位+'%',b.单位)>0 or patindex('%'+b.单位+'%',a.单位)>0)
declare @B表 table (姓名 varchar(10),单位 varchar(100))
insert @A表 select '張三','航天公司'
insert @A表 select '李四','石化公司'
insert @B表 select '張三','航天'
insert @B表 select '王五','科技電子'
select * from @A表 a, @B表 b where a.姓名=b.姓名 and( patindex('%'+a.单位+'%',b.单位)>0 or patindex('%'+b.单位+'%',a.单位)>0)
#7
select *
from a,b
where a.姓名 = b.姓名 and (a.工作单位 like '%'+b.单位+'%' or b.单位 like '%'+a.工作单位+'%')
#8
我想问问楼主,象
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
需要批配的。
谢谢楼上的兄弟们,谢谢你们的帮助。方法还不止一种,呵呵。又学东西 了。谢谢
好又多市场
跟
好又多超级市场
这样要不要模糊匹配呢
需要批配的。
谢谢楼上的兄弟们,谢谢你们的帮助。方法还不止一种,呵呵。又学东西 了。谢谢
#9
select *
from a inner join b on a.姓名 = b.姓名
where (a.工作单位 like '%'+b.单位'+%' or b.单位 like '%'+a.工作单位+'%');
这条语句楼主试衣下。
from a inner join b on a.姓名 = b.姓名
where (a.工作单位 like '%'+b.单位'+%' or b.单位 like '%'+a.工作单位+'%');
这条语句楼主试衣下。
#10
呵呵,谢谢了,LS的方法和前面的朋友给的结果一样,谢谢了。
#11
使用动态SQL语句.
#12
要匹配的话就麻烦了,上面的方法都不能匹配哦
#13
学习。。。
#14
是不是要用存储过程?求解中,谢谢。
#15
求解谢谢。
#16
说的不错,前面的方法都不符合楼主的要求
#17
好像可以用全文索引的CONTAINS布尔逻辑检索