请教一个SQL拼接语句
我是用C#写的:
string Sqltext = " update a set a.cc=‘’
我现在是判断一个A表中有的 ,B表中没有的就把A表的数据更新到B表去,如果有就更新其他需要字段,请问这个SQL语句怎么拼写?A表和B表有个相同的字段进行关联,不是写存储过程是在程序了拼SQL语句。
一个直接拼写就我能搞定,但是加一个循环请问怎么写,我是C#写的
这个前面怎么加IF条件呢?string Sqltext = " update a set a.cc=‘’
[解决办法]
--跨表连查更新create table m_name (id int,name varchar(4))insert into m_nameselect 1,'张三' union allselect 2,'李四' union allselect 3,'王五'select * from m_name/*id name----------- ----1 张三2 李四3 王五*/create table m_chengji (name varchar(4),kemu int,chengji int,id sql_variant)insert into m_chengjiselect '张三',1,95,null union allselect '张三',2,92,null union allselect '张三',3,91,null union allselect '李四',1,56,null union allselect '李四',2,76,null union allselect '李四',3,99,null union allselect '王五',1,57,null union allselect '王五',2,100,null union allselect '王五',3,67,nullselect * from m_chengji/*name kemu chengji id---- ----------- ----------- -----------张三 1 95 NULL张三 2 92 NULL张三 3 91 NULL李四 1 56 NULL李四 2 76 NULL李四 3 99 NULL王五 1 57 NULL王五 2 100 NULL王五 3 67 NULL*/update m_chengji set id = a.id from m_chengji b left join m_name a on a.[name]=b.[name]
[解决办法]
UPDATE B SET COL1=A.COL1,COL2=A.COL2 ,.. FROM A WHERE A.ID=B.ID INSERT B (ID,COL1,COL2...)SELECT ID,COL1,COL2... FROM A WHERE NOT EXISTS(SELECT 1 FROM B WHERE B.ID=A.ID)
[解决办法]
if exists(select [Name] from tb1 where [Name]='张三') update tb1 set [Phone]='123' where [Name]='张三' else insert tb1 values('张三','123') end