新人求指教下SQL如何对比一列的内容是否在另一列中存在并且一致呢?
新人求指教下SQL怎么对比一列的内容是否在另一列中存在并且一致呢???
表tb_kh
bm mc
2150 @(2150)岳麓旭辉御府李芝艺CCB
2227 @(2227)沅江五斗社区袁剑光 CCB
2192 (2192)宁乡泰成巷路黄超CCB
2191 (2191)宁乡豪德A区黄根深CCB
2202 (2202)芙蓉火炬村贺凯 CCB
2793 @(2793)长沙雨花万家城易卫红CCB
2163 (2163)益阳茈湖口镇邵喜花
怎么可以用bm跟mc对比出, bm里的数字跟mc里包含的数字是否是一致的?????
mc的数字位置是不固定的。
------解决思路----------------------
用个 charindex函数就可以了
------解决思路----------------------
select * from kb_th
where charindex(bm,mc)<>0
--or
select * from kb_th
where mc like '%'+mc+'%'
------解决思路----------------------
那你这个要不在程序里面判断,
要不在添加的时候用个like 或者 charindex 来判断一下,不一致就不插入不就完了么?
------解决思路----------------------
如:
------解决思路----------------------
调整:
表tb_kh
bm mc
2150 @(2150)岳麓旭辉御府李芝艺CCB
2227 @(2227)沅江五斗社区袁剑光 CCB
2192 (2192)宁乡泰成巷路黄超CCB
2191 (2191)宁乡豪德A区黄根深CCB
2202 (2202)芙蓉火炬村贺凯 CCB
2793 @(2793)长沙雨花万家城易卫红CCB
2163 (2163)益阳茈湖口镇邵喜花
怎么可以用bm跟mc对比出, bm里的数字跟mc里包含的数字是否是一致的?????
mc的数字位置是不固定的。
------解决思路----------------------
用个 charindex函数就可以了
------解决思路----------------------
select * from kb_th
where charindex(bm,mc)<>0
--or
select * from kb_th
where mc like '%'+mc+'%'
------解决思路----------------------
那你这个要不在程序里面判断,
要不在添加的时候用个like 或者 charindex 来判断一下,不一致就不插入不就完了么?
------解决思路----------------------
如:
declare @bm nvarchar(10),@mc nvarchar(200);
if (charindex(@bm,@mc)<>0
begin
raiserror('该bm值与mc值不匹配,请确认,16,1);
rollback tran;
return;
end
else
begin
insert into tb_kh(bm,mc) values(@bm,@mc);
end
------解决思路----------------------
调整:
declare @bm nvarchar(10),@mc nvarchar(200);
if (charindex(@bm,@mc)=0 --等于0,表示不一致
begin
raiserror('该bm值与mc值不匹配,请确认,16,1);
rollback tran;
return;
end
else
begin
insert into tb_kh(bm,mc) values(@bm,@mc);
end