我有一张桌子说
表1
123 | 456
789 | 321
所以表1中的id列=表2中的id,并且会有catgy 180
来自表1的rel_id列=来自表2的id,并且将具有catgy 181
table 2
123 | 180 | 6 | 0 | 0 | 7
456 | 181 | 7 | 0 | 0 | 0
789 | 180 | 8 | 9 | 9 | 0
321 | 181 | 9 | 0 | 0 | 0
所以我想coamapre spl_2,spl_3,spl_4为id 123,spl_1为id 456,如果相同则更新id 123 spl's为null(在这种情况下更新spl_4为null)
由于
答案 0 :(得分:0)
您可以使用标准Update YourTable
Set SPCLTY_2 = Case When SPCLTY_2 = SPCLTY_1 Then Null Else SPCLTY_2 End,
SPCLTY_3 = Case When SPCLTY_3 = SPCLTY_1 Then Null Else SPCLTY_3 End,
SPCLTY_4 = Case When SPCLTY_4 = SPCLTY_1 Then Null Else SPCLTY_4 End,
SPCLTY_5 = Case When SPCLTY_5 = SPCLTY_1 Then Null Else SPCLTY_5 End
表达式:
$.ajax({
url: "something",
success: function(data) {
//let data.name = "Bob"
div.append("<input value='data.name'>");
}
});
答案 1 :(得分:0)
当您需要根据另一个表(或同一个表中的值或连接的结果等)更新一个表中的值时 - 来自另一个关系 *将是最常见的在配方中,使用MERGE
语句通常最简单。这是一个很好的例子。
* 关系是一个奇特的术语表或类似的东西 一个,例如连接的结果,聚合操作,或者真的 任何类型的
SELECT
陈述。
merge into table_2 t2
using
( select t1.id, s.spl_1
from table_1 t1 join table_2 s on t1.rel_id = s.id
) x
on ( x.id = t2.id )
when matched then update
set t2.spl_2 = case when t2.spl_2 = x.spl_1 then null else t2.spl_2 end,
t2.spl_3 = case when t2.spl_3 = x.spl_1 then null else t2.spl_3 end,
t2.spl_4 = case when t2.spl_4 = x.spl_1 then null else t2.spl_4 end
where x.spl_1 in (t2.spl_2, t2.spl_3, t2.spl_4)
-- WHERE clause so that you only update rows that need to be updated!
;
2 rows merged.
select * from table_2;
ID CATGY SPL_1 SPL_2 SPL_3 SPL_4
---------- ---------- ---------- ---------- ---------- ----------
123 180 6 0 0
456 181 7 0 0 0
789 180 8 0
321 181 9 0 0 0