问题描述
a表idtd1td21ab2cdb表idtd12td1td21ab2cd3abcb表的td12是td1和td2组成的先判断b表是不是a表组成的,如果是组成的我们就将a表的td1td2复制给b表的td1td2如果不是,我们就给他删除,这种sql应该怎么写呢??
解决方案
解决方案二:
不明白
解决方案三:
判断b表的td12是不是a表的td1和td2组成的
解决方案四:
你这个是不是要写成一个存储过程啊????单条sql太多了吧??
解决方案五:
给你提供一点思路你看看我这个。。。declare@str1nvarchar(20)set@str1=(selecttd1+td2fromt1whereid=1)declare@str2nvarchar(20)set@str2=(selecttd12fromt2whereid=1)declare@s1varchar(20)set@s1=(selecttd1fromt1whereid=1)declare@s2varchar(20)set@s2=(selecttd2fromt1whereid=1)if(@str1=@str2)beginupdatet2settd1=@s1,td2=@s2whereid=1end
解决方案六:
你要用的话那么你就要把id变成动态对比的。。。我这个是写死的。。。
解决方案七:
删除:deletefrombwhereb.idnotin(selectb.[id]froma,bwhereb.td12=(a.td1+a.td2))更新:updatebsetb.td1=a.td1,b.td2=a.td2from(selecta.td1,a.td2froma,bwhereb.td12=(a.td1+a.td2))awhereb.td12=(a.td1+a.td2)自己优化吧。。
解决方案八:
引用4楼lxl_sports的回复:
给你提供一点思路你看看我这个。。。SQLcodedeclare@str1nvarchar(20)set@str1=(selecttd1+td2fromt1whereid=1)declare@str2nvarchar(20)set@str2=(selecttd12fromt2whereid=1)declare@s1varchar(20)set@s1=(selecttd1fromt1whereid=1)declare@s2varchar(20)set@s2=(selecttd2fromt1whereid=1)if(@str1=@str2)beginupdatet2settd1=@s1,td2=@s2w…
我这样写呢?DELETEFROMODFROMdbo.t1asODJOINdbo.t2ASOD1ONOD.id=OD1.idWHEREOD.t1+OD.t2<>OD1.t12--删除了其他的直接更新就好了
解决方案:
引用4楼lxl_sports的回复:
给你提供一点思路你看看我这个。。。SQLcodedeclare@str1nvarchar(20)set@str1=(selecttd1+td2fromt1whereid=1)declare@str2nvarchar(20)set@str2=(selecttd12fromt2whereid=1)declare@s1varchar(20)set@s1=(selecttd1fromt1whereid=1)declare@s2varchar(20)set@s2=(selecttd2fromt1whereid=1)if(@str1=@str2)beginupdatet2settd1=@s1,td2=@s2w…
不用这么麻烦生成一个CTE就好了WITHFUCKAS(SELECTc1.t12asa,c.t1asb,c.t2asdFROMdbo.t1ascINNERJOINdbo.t2asc1ONc.id=c1.idWHEREc.t1+c.t2=c1.t12)UPDATEFUCKSETa=b+d
解决方案:
WITHFUCKAS(SELECTc1.t12asa,c.t1asb,c.t2asdFROMdbo.t1ascINNERJOINdbo.t2asc1ONc.id=c1.idWHEREc.t1+c.t2=c1.t12)UPDATEFUCKSETa=b+d
解决方案:
select*fromadd1,citywhereadd1.clike%city.city%这条语句有错吗服务器:消息170,级别15,状态1,行1第1行:'city'附近有语法错误。
解决方案:
引用10楼xwf111的回复:
select*fromadd1,citywhereadd1.clike%city.city%这条语句有错吗服务器:消息170,级别15,状态1,行1第1行:'city'附近有语法错误。
不知道LZ写的什么T-SQL看看我的这篇再看看你的语句什么错误http://www.cnblogs.com/bhtfg538/archive/2008/11/25/1341016.html
解决方案:
select*fromadd1,citywhereadd1.clike%city.city%这条语句有错吗查询city表所有与add1表数据匹配的add1c表中的有(city表种city一列的数据)包含就返回
解决方案:
在两个表中查询,应该加连接不能直接查询。