字段1 字段2 字段3 字段4
1 D AXB YES
2 D X NO
3 G AHB YES
4 G H NO
表如上
现在是需要将所有字段4为YES的和字段2与它相同的字段4为NO的记录交换字段3的值
将表变为
字段1 字段2 字段3 字段4
1 D X YES
2 D AXB NO
3 G H YES
4 G AHB NO
(记录1 和2 交换字段3 ;记录3 和4 交换字段3)
这个UPDATE SQL怎么写啊
...全文
5613打赏收藏
求一SQL语句,来者有分!
字段1 字段2 字段3 字段4 1 D AXB YES 2 D X NO 3 G AHB YES 4 G H NO 表如上 现在是需要将所有字段4为YES的和字段2与它相同的字段4为NO的记录交换字段3的值 将表变为 字段1 字段2 字段3 字段4 1 D X YES 2 D AXB NO 3 G H YES 4 G AHB NO (记录1 和2 交换字段3 ;记录3 和4 交换字段3) 这个UPDATE SQL怎么写啊
你用布尔类型的话
update tablename set 字段4='0' where 字段4='no' and 字段2=字段2
update tablename set 字段4=‘no' where 字段4='yes' and 字段2=字段2
update tablename set 字段4='yes' where 字段4='0' and 字段2=字段2
假设tabname1为现有表明,建立表tabname2与tabname1结构相同,把tabname1的内容导到tabname2中,保证tabname1和tabname2结构和内容均相同。
UPDATE tabname1
set 字段3 = (select 字段3 from tabname2
where tabname2.字段2 = tabname1.字段2
and tabname2.字段4 = 'NO')
where 字段4 = 'YES';
UPDATE tabname1
set 字段3 = (select 字段3 from tabname2
where tabname2.字段2 = tabname1.字段2
and tabname2.字段4 = 'YES')
where 字段4 = 'NO';
这样应该能够得到正确的结果。