新人求指教下SQL如何对比一列的内容是否在另一列中存在并且一致呢?

新人求指教下SQL怎么对比一列的内容是否在另一列中存在并且一致呢???
本帖最后由 cycklove 于 2015-01-30 23:46:48 编辑
表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


引用:
是没我没表达清楚意思了。

我的目的是想在存储过程里加个,在表tb_kh新增资料时, 判断bm和mc里包含的数字是否是一致的,不是一致的就报错,不让新增。

类似于这个效果一样
if exists(select 1 from Tb_sp_dj where id_gsjg=1 and id_sp=@id and dj_pf<>dj_jh)
  and @opertype='new'
begin
  set @errorid= '13'
  set @errormessage = '进货价不等于批发价!'
  ROLLBACK TRANSACTION 
  return
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