桌子是一张大桌子,有数以百万计的记录。
表1有三栏
ID,第X列和第Y列。目前,我正在使用“ in”语句,该语句很慢;特别是在BIG表中。我希望不使用in语句来提高此update语句的性能。任何帮助是极大的赞赏
Update [Table1] set Column_X='Delete' where Column_Y in(
select distinct (Column_Y) from [Table1] where Column_X='Delete'
)
result before running script
Table 1
ID Column X Column Y
1 Delete CAT
2 x1 CAT
3 x1 CAT
4 x1 COW
5 x1 COW
6 x2 Moon
7 Delete Chicken
Intended result after running script
Table 1
ID Column X Column Y
1 Delete CAT
2 Delete CAT
3 Delete CAT
4 x1 COW
5 x1 COW
6 x2 Moon
7 Delete Chicken
您可以在FROM子句中多次使用同一张表,因此类似:
update Table1
set Column_X = 'Delete'
from Table1 a, Table1 b
where a.Column_Y = b.Column_Y
and b.Column_X = 'Delete'
此更新影响Table1的第一个实例,即“ a”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句