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

cycklove 2015-01-30 10:54:54
表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的数字位置是不固定的。
...全文
258 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cycklove 2015-02-02
  • 打赏
  • 举报
回复
已经搞定了,谢谢。
hepe00 2015-02-01
  • 打赏
  • 举报
回复
调整:

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
hepe00 2015-02-01
  • 打赏
  • 举报
回复
如:

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
引用 3 楼 cycklove 的回复:
是没我没表达清楚意思了。 我的目的是想在存储过程里加个,在表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
hepe00 2015-01-31
  • 打赏
  • 举报
回复
select * from kb_th where charindex(bm,mc)<>0 --or select * from kb_th where mc like '%'+mc+'%'
Ginnnnnnnn 2015-01-31
  • 打赏
  • 举报
回复
用个 charindex函数就可以了
Ginnnnnnnn 2015-01-31
  • 打赏
  • 举报
回复
那你这个要不在程序里面判断, 要不在添加的时候用个like 或者 charindex 来判断一下,不一致就不插入不就完了么?
cycklove 2015-01-31
  • 打赏
  • 举报
回复
是没我没表达清楚意思了。 我的目的是想在存储过程里加个,在表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

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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